当前位置 : 主页 > 编程语言 > c语言 >

派生类的默认成员

来源:互联网 收集:自由互联 发布时间:2023-08-25
派生类的默认成员 在前面类和对象那一节我们学习了6个默认成员函数: 我们知道即使我们不写,编译器也会自动生成。我们也来学习一下派生类的默认成员函数。 在下面的代码中Pe

派生类的默认成员

在前面类和对象那一节我们学习了6个默认成员函数:

image-20230718170116142

我们知道即使我们不写,编译器也会自动生成。我们也来学习一下派生类的默认成员函数。

在下面的代码中Person是基类,Student是Person的派生类:

class Person
{
public:
    //构造函数
	Person(const char* name = "张三")
		: _name(name)
	{
		cout << "Person()" << endl;
	}
    //拷贝构造函数
	Person(const Person& p)
		: _name(p._name)
	{
		cout << "Person(const Person& p)" << endl;
	}
    //赋值重载函数
	Person& operator=(const Person& p)
	{
		cout << "Person operator=(const Person& p)" << endl;
		if (this != &p)
			_name = p._name;
		return *this;
	}
    //析构函数
	~Person()
	{
		cout << "~Person()" << endl;
	}
protected:
	string _name; // 姓名
};
class Student : public Person
{
protected:
	int _num;//学号
};
int main()
{
	Student s;
	return 0;
}

当我们在子类中不做任何定义的时候,会调用父类的构造函数和析构函数,上述代码打印结果如下:

image-20230718170749479

我们发现子类不做定义,子类会自动的调用父类的成员(构造函数和析构函数)。

上一篇:Linux上安装Qt Creator
下一篇:没有了
网友评论