c++ - 在构造函数中初始化成员

标签 c++

<分区>

Possible Duplicate:
C++ initialization lists

class Base
{
public:
int m_nValue;

Base(int nValue=0)
    : m_nValue(nValue)
{
}
};

在这段代码中,构造函数是否初始化了m_nvalue成员变量? 我不确定这种语法:

Base(int nValue=0) : m_nValue(nValue) {}

我们通常这样写:

Base(int nValue) { m_nValue = nValue;}

有人能解释一下上面的C++语法吗?

最佳答案

此语法:

Base(int nValue=0)
: m_nValue(nValue)

称为成员初始值设定项。它将使用给定的 nValue 初始化 m_nValue。这种语法在 C++ 中通常是首选,因为它在构造函数的主体之前执行。

关于c++ - 在构造函数中初始化成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14410071/

相关文章:

c++ - 指向结构中作为静态成员的函数的指针

c++ - 为容器生成成员类型

c++ - 海湾合作委员会错误 : invalid conversion from double* to const double

c++ - C++中的内存分配

c++ - 将单个字符串分成多个堆栈

C++ 标记化字符串 - 不工作

c++ - 引用成员的初始化需要一个临时变量

c++ - 哈希表的复杂度计算错误?

c++ - 是否返回 std::list coSTLy?

c++ - 强制程序/线程使用 100% 的处理器资源