有关C++类的初始化列表问题
class A
{
public:
A()
{
printf("A ");
}
~A()
{
printf("~A ");
}
};
class B
{
public:
B(A &a):_a(a)
{
printf("B ");
}
~B()
{
printf("~B ");
}
private:
A _a;
};
int main()
{
A a;
B b(a);
return 0;
}
输出选项:1、A A B ~B ~A ~A
2、A B ~B ~A ~A
当把B得构造函数改为:
B(A &a)
{
printf("B ");
_a = a;
}
又是选哪个答案呢?为什么呢?请各位大侠不胜赐教!!!
{
public:
A()
{
printf("A ");
}
~A()
{
printf("~A ");
}
};
class B
{
public:
B(A &a):_a(a)
{
printf("B ");
}
~B()
{
printf("~B ");
}
private:
A _a;
};
int main()
{
A a;
B b(a);
return 0;
}
输出选项:1、A A B ~B ~A ~A
2、A B ~B ~A ~A
当把B得构造函数改为:
B(A &a)
{
printf("B ");
_a = a;
}
又是选哪个答案呢?为什么呢?请各位大侠不胜赐教!!!
...全文
相关推荐
关于C++类的成员初始化列表的相关问题
### C++类的成员初始化列表相关问题在C++编程语言中,成员初始化列表是一种非常重要的构造函数特性,它能够确保类的成员变量在构造函数执行前得到正确的初始化。
Cpp_practice
这个压缩包文件"Cpp_practice-main"包含了丰富的C++编程实践资源,旨在帮助学习者深入理解和掌握C++语言的核心概念与应用技巧。
C++类定义代码的分离
因此,它们必须在源文件中进行初始化。`const`修饰的数据成员,如果它是一个非静态成员,必须在构造函数的初始化列表中初始化,因为它一旦初始化后就不能改变。
cpp代码-背包问题2
【压缩包子文件的文件名称列表】:main.cpp、README.txt- main.cpp:这是C++程序的主要入口点,通常包含程序的主函数(main())。在这里,它很可能是实现背包问题算法的代码。
C++类和对象的基本概念笔记
**初始化列表**: 初始化列表用于在构造函数中直接初始化成员变量,如`Data::Data(int data) : num(data) {}`。


