2 c++
我刚刚看到了构造函数的以下源代码.
testProg::testProg() : CCProg()
{
m_UID = n_UID = 0;
}
Run Code Online (Sandbox Code Playgroud)
通常,根据我的理解,构造函数如下所示:
testProg::testProg()
{
m_UID = n_UID = 0;
}
Run Code Online (Sandbox Code Playgroud)
所以我想知道这个CCProg()的目的是什么,如果有人可以快速告诉我这里发生了什么,那将会很棒.谢谢!
Wil*_*iam 16
似乎testProg继承自CCProg,并且从testProg构造函数的初始化列表中调用了CCProg的no-args构造函数.
鉴于它是被调用的no-args构造函数,实际上并不需要显式调用(无论如何它都会被称为implicity).因此,这种语法的主要用途是调用确实接受参数的父构造函数.
例如:
testProg::testProg(int days) : CCProg(days)
{
m_UID = n_UID = 0;
}
Run Code Online (Sandbox Code Playgroud)
在这里,如果省略了显式调用,那么如果一个可用,则no-args构造函数将被称为implicity,否则编译将失败.
请注意,也可能(尽管不太可能),CCProg是属于testProg的成员变量的名称 - 再次,不需要显式调用no-args构造函数,因为它将被称为implicity.
它是对基类构造函数的显式调用,如果类看起来像这样:
class testProg : public CCProg
Run Code Online (Sandbox Code Playgroud)
或者(不太可能)调用初始化成员变量,如果类看起来像这样:
class testProg
{
Something CCProg;
// ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
333 次 |
| 最近记录: |