书上说,一共有4种初始化方式,假设有一个teacher类。
teacher a(参数)我懂。
但是teacher *p=new teacher(参数)是什么。
还有假设teacher类里有一个student类的对象stu。
如
class teacher
{
int name;
student stu
}
则teacher的构造函数里:
teacher(参数):stu(参数)
{//to do}
里的stu是什么鬼..
1 回答
onemoo
TA贡献883条经验 获得超454个赞
teacher a(参数) 这是直接初始化(direct initialize)形式,就是定义了一个teacher变量a,直接调用其构造函数。
new是C++关键字,new会在堆中构造一个对象并返回它的指针。new后类型后面括号仍然是调用其构造函数,这也是一种直接初始化。
teacher(参数) : stu(参数) {...} 构造函数的参数列表后,加上冒号,后面跟着一列成员变量(初值),这一列成员变量叫构造初始化列表。 它的作用是让这些成员变量用括号中的值来初始化,这会在构造函数的函数体执行前完成。这就是构造函数的特殊形式。
你看的书是C++的教程吗? 这些书上都应该讲过啊!
- 1 回答
- 0 关注
- 1697 浏览
添加回答
举报
0/150
提交
取消