class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & perate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & perate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
A、用于解决继承最远共同基类时的二义性问题
B、需要在第一层基类继承时引入关键字virtual
C、继承中既有虚基类,又有非虚基类时,先调用虚基类的构造函数,再调用非虚基类的构造函数
D、派生类(包括直接派生或间接派生的派生类)中,不需要通过构造函数的初始化表对虚基类进行初始化
编写一个学生类,包括学生的基本信息如学号、姓名、性别、年龄,定义一个静态数据成员count用来统计创建的学生数量,要求实现基本功能如下: a) 定义带默认参数的构造函数,实现数据成员赋初值和count自增1操作,并输出提示语句; b) 定义析构函数,实现count自减1操作,并输出提示语句; c) 输入学生信息函数,其中输入学生信息函数的形参名和学生类中数据成员名相同,要求引入this指针赋值; d) 输出学生信息函数,输出学生信息函数定义为常函数; e) 定义获取count的静态成员函数getCount,实现count数据的返回; f) 在主函数中,分别定义学生类对象数组、指向对象的指针、动态申请对象、动态释放对象、在每次申请对象如定义对象数组、定义指向对象的指针、new对象之后、delete对象止等之后调用getCount函数观察count的变化。 (为便于继承,要求学生类中数据成员定义在保护访问权限下,成员函数定义在公有访问权限下,第4题中的本科生类和研究生类不做此要求,可根据需要定义合适的访问权限) 特别提示:各位同学可自行设置变量名、对象名和类型名等。但要求必须在适当位置(如定义变量、对象、类名或函数名、或输出等处)添加你的真实学号或姓名作为其中一部分。 作答方式: 交完整的程序源代码截图和运行结果截图(截图需存为图片,然后通过答题框上方的“图片按钮"上传到答题框中,若一张截不完可以用多张图片,按顺序上传。上传后答案图片会直接显示在答题框里) 。
A、双目运算符重载为友元函数实现时,函数需要两个形参
B、运算符重载函数可以改变重载运算符的优先级别
C、[]运算符不能重载
D、单目运算符重载为成员函数实现时,函数不需要形参
A、如果父类没有将析构函数声明为virtual,则在通过父类指针销毁子类对象时,只会调用父类析构函数,而子类对象比父类对象多出来的部分则不会被销毁
B、在定义父类时需要在其析构函数前面添加virtual
C、没有定义虚析构函数时,系统会自动生成默认虚析构函数
D、基类定义虚析构函数后,派生类的析构函数自动为虚析构函数
A、纯虚函数的声明形式为:virtual 返回类型 函数名(形式参数)=0;
B、只要定义了纯虚函数的类,就是抽象类,不能用来声明对象实例
C、纯虚函数不具有继承性
D、纯虚函数的作用就是在基类中为其派生类保留一个函数的名字,以便派生类根据需要对其进行定义
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!