我刚刚遇到了以下构造函数的源代码。
testProg::testProg() : CCProg()
{
m_UID = n_UID = 0;
}
通常,根据我的理解,构造函数如下所示:
testProg::testProg()
{
m_UID = n_UID = 0;
}
所以我想知道CCProg()的目的是什么,如果有人
可以很快告诉我这里发生了什么。谢谢!
最佳答案
似乎testProg继承自CCProg,而CCProg的no-args构造函数是从testProg构造函数的initialization list调用的。
鉴于正在调用的是无参数构造函数,因此实际上并不需要显式调用(无论如何都将其称为隐式调用)。因此,此语法的主要用途是调用确实带有参数的父构造函数。
例如:
testProg::testProg(int days) : CCProg(days)
{
m_UID = n_UID = 0;
}
在这里,如果省略了显式调用,则在无参数构造函数可用的情况下将其隐式调用,否则编译将失败。
注意,也有可能(尽管可能性很小)CCProg是属于testProg的成员变量的名称-再次,不需要显式调用no-args构造函数,因为它将被称为隐式。
关于c++ - C++初学者问题:构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1150936/