#include <iostream>
using namespace std;
class AB
{
public:
AB(int in_):_in(in_) {std::cout<<_in<<endl;};
~AB() {std::cout<<"hahaha\n";};
void in(int in_)
{
_in=in_;
std::cout<<"Ha\n";
}
private:
int _in;
};
struct student
{
char name;
int age;
};
class AC : public AB
{
public:
AC():AB(15) {};
~AC() {std::cout<<"haha\n";};
public:
student c;
};
int main() {
AC ac;
ac.c.age=5;
std::cout<<ac.c.age<<endl;
std::cout << "Hello World!\n";
}
结果:

int_赋值给_int利用构造函数初始化列表赋值;
ac是局部变量,会在函数结束时调用析构函数清理内存,先清理AC再清理主类AB;
AC中的结构体不需要对其初始化,因为c是一个公有成员变量,它的默认构造函数会被自动调用。在这个例子中,student结构体的默认构造函数会被调用,它会将name成员变量初始化为空字符,将age成员变量初始化为0。(如果结构体中含有指针需要对其初始化)
--仅供小白参考
该代码示例展示了C++中类的继承、构造函数和析构函数的使用。类AB包含一个构造函数和析构函数,类AC继承自AB并添加了一个student结构体成员。在main函数中,AC对象ac的生命周期内,其成员变量被初始化和使用,同时析构函数按顺序调用。
415

被折叠的 条评论
为什么被折叠?



