定义学生类Student:每个学生的信息包含有姓名(字符指针)和成绩(int类型),定义两个构造函数:1、 定义带两个参数的构造函数,在构造函数中为保存姓名信息的字符指针开辟空间,并向空间中存入表示姓名的字符串。2、 定义拷贝构造函数,完成深拷贝3、 定义析构函数,释放资源编写程序,使用以上定义的三种函数。
#define _CRT_SECURE_NO_WARNINGS[br][/br]#include [iostream][br][/br]#include [cstring][br][/br]using namespace std;[br][/br]class Student{[br][/br]public:[br][/br]Student(){ strcpy(name, "default name"); score = 60; }[br][/br]Student(Student &ref_stu);[br][/br]Student(const char *namep, int n);[br][/br]~Student(){ delete[] name; }[br][/br]void put_info(){ cin >> name >> score; }[br][/br]int get_score(){ return score; }[br][/br]void print_info(){ cout [< "name:" << name << ", score:" << score << endl; }
举一反三
- 定义学生类Student:要求:1) 每个学生的信息包含有姓名(字符数组)和成绩(int类型);2) 定义两个构造函数:1、带一个参数的构造函数2、带两个参数的构造函数分别调用这两种构造函数,完成对象的初始化。
- 定义学生类Student:[br][/br]要求:1)每个学生的信息包含有姓名(字符数组)和成绩(int类型);2)定义构造函数,完成对象的初始化。
- 【填空题】类中构造函数可以重载,可以定义_________个构造函数;而析构函数不能重载,只能定义______个
- (12)对于一个类定义,下列叙述中错误的是 A: )如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数 B: )如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数 C: )如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数 D: )如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数
- 【填空题】假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为 。若类X中没有定义拷贝构造函数,则系统为类X定义的默认拷贝构造函数的原型为
内容
- 0
在C++中,构造函数和析构函数, 1 不能定义为虚函数, 2 可以定义为虚函数。
- 1
下列关于类的构造函数和析构函数的说法中,错误的是() A: 类的析构函数可以重载 B: 类的构造函数可以重载 C: 定义一个类可以不显式定义构造函数 D: 定义一个类可以不显式定义析构函数
- 2
【编程题】定义一个学生类student,它含有私有数据成员:学号、姓名、年龄、成绩及公有成员函数:构造函数、成员函数set()用于对私有数据成员赋值、成员函数show()用于显示学号、姓名、年龄、成绩等。在主函数中定义student类的对象,显示两个学生的有关信息。如有下述输出结果: 学生1有关信息: 学号:101 姓名:lijun 年龄:18 成绩:85 学生2有关信息: 学号:102 姓名:wangming 年龄:19 成绩:78
- 3
下列关于类的构造函数和析构函数的叙述中,不正确的是_____。 A: 类的构造函数可以重载 B: 定义一个类时可以不显式定义析构函数 C: 类的析构函数可以重载 D: 定义一个类时可以不显式定义构造函数
- 4
编写程序定义一个学生类(Student),该类包括数据成员(学号、姓名、年龄),分别用sno、sname和sage表示,要求使用构造函数和析构函数实现对数据的输入、输出。