本题用于验证继承的有关规则。请在//start和//end之 间编写代码,实现以下要求: (1)编写名为CFT的类,数据成员仅有一个int型的整数,名为data; 函数成员包括:①构造函数。用形参得到的整数对数据成员进行初始化。 ②show虚函数,无参,无返回值。功能是以“show=???” 的形式显示数据成员的值。 ③disp函数, 无参,无返回值。功能是以“disp=???”的形式显示数据成员的值。 (2)编写名为CSN的类,以CFT为基类,新增一个int型的数据成员,名字仍然是data;函数 成员包括: ①构造函数。用形参得到的两个整数对数据成员进行初始化,前一形参用于新增的数据成 员,后一形参用于基类的数据成员。 ②show虚函数,无参,无返回值。功能是以“show=(???,???)”的形式显示数据成员的 值,基类的数据成员在前,CSN新增的数据成员在后。 ③disp函数,无参,无返回值。功能是以“disp=(3?????)”的形式显示数据成员的值,基 类的数据成员在前,CSN新增的数据成员在后。 ④把“void fun()” 设定为本类的友元函数。 其中②和③需要实现对基类同名函数的覆盖,fun是全局函数。
时间: 2024-04-04 08:32:14 浏览: 78
//start
#include <iostream>
using namespace std;
class CFT {
protected:
int data;
public:
CFT(int d): data(d) {}
virtual void show() {
cout << "show=" << data << endl;
}
void disp() {
cout << "disp=" << 3 * data << endl;
}
};
class CSN : public CFT {
private:
int data;
public:
CSN(int d1, int d2) : CFT(d2), data(d1) {}
void show() {
cout << "show=(" << CFT::data << "," << data << ")" << endl;
}
void disp() {
cout << "disp=(" << CFT::data << data << ")" << endl;
}
friend void fun();
};
void fun() {
CSN csn(4, 5);
csn.show();
}
int main() {
fun();
return 0;
}
//end
阅读全文