4. 修改以下程序,使其可以成功运行 #include<iostream.h> class base{ int x; public: void setx(int n){ x=n;} void showx( ){ cout<<x<<endl;} }; class derived:private base{ private: int y; public: void setxy(int n,int m) { setx(n); y=m; } void showxy( ){ cout<<x<<endl; cout<<y<<endl; } }; Int main() { derived obj; obj.setx(10); obj.showx(); obj.setxy(10,20); obj.showxy( ); return 0; }
时间: 2024-03-26 15:34:43 浏览: 23
修改后的程序如下:
```cpp
#include<iostream>
using namespace std;
class base{
int x;
public:
void setx(int n){ x=n;}
void showx( ){ cout<<x<<endl;}
};
class derived:private base{
int y;
public:
void setxy(int n,int m){ setx(n); y=m; }
void showxy( ){ cout<<base::x<<endl; cout<<y<<endl; }
};
int main() {
derived obj;
obj.setxy(10,20);
obj.showxy();
return 0;
}
```
在原程序中,由于类derived私有继承了类base,因此在main函数中不能访问base类的public成员函数setx和showx。解决方法是,将obj.setx(10);和obj.showx();改为obj.setxy(10,20);和obj.showxy();。同时,在showxy函数中,由于x是base类的private成员,不能直接访问,需要用base::x来访问。
相关问题
#include <stdlib.h> #include <iostream.h> #include <fstream.h>
#include <stdlib.h>:这是C/C++标准库中的一个头文件,它包含了一些常用的函数和宏定义,用于处理内存分配、随机数生成、字符串转换等操作。
#include <iostream.h>:这是C++标准库中的一个头文件,它包含了输入输出流的定义和相关操作符的重载,用于进行控制台输入输出。
#include <fstream.h>:这是C++标准库中的一个头文件,它包含了文件输入输出流的定义和相关操作符的重载,用于进行文件的读写操作。
这些头文件在C/C++编程中经常使用,可以帮助我们进行各种输入输出操作和文件处理操作。
范例:
```cpp
#include <stdlib.h>
#include <iostream.h>
#include <fstream.h>
int main() {
// 使用stdlib.h中的函数
int num = rand(); // 生成一个随机数
cout << "Random number: " << num << endl;
// 使用iostream.h中的函数
int input;
cout << "Enter a number: ";
cin >> input;
cout << "You entered: " << input << endl;
// 使用fstream.h中的函数
ofstream file("example.txt"); // 创建一个文件对象
file << "This is an example." << endl; // 写入文件
file.close(); // 关闭文件
return 0;
}
```
补全程序,并写出程序运行结果。 #include <iostream> using namespace std; class Class { public : Class ( int...
补全程序如下:
```
#include <iostream>
using namespace std;
class Class {
public:
Class(int a, int b, int c) {
x = a;
y = b;
z = c;
}
void print() {
cout << "x: " << x << endl;
cout << "y: " << y << endl;
cout << "z: " << z << endl;
}
private:
int x;
int y;
int z;
};
int main() {
Class obj(1, 2, 3);
obj.print();
return 0;
}
```
程序运行结果为:
```
x: 1
y: 2
z: 3
```
程序定义了一个名为 Class 的类,该类包括有参构造函数和一个 print() 函数,构造函数用于对类的私有成员变量进行初始化,print() 函数用于输出类的私有成员变量。在主函数 main() 中,创建了一个名为 obj 的 Class 类对象,构造函数传入三个整数参数 1、2 和 3。最后调用 obj 对象的 print() 函数,输出 obj 对象的私有成员变量 x、y 和 z 的值。
相关推荐
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)