1

这是我在程序代码中发现的:

pff::NAS::NAS( const NAS& p_Other ) 
: pff::MCCI(_T("NAS"))           //<- ?
, m_strS(_T("JustAString"))      //<- ?
, m_strK(_T("JustAString"))      //<- ?
, m_strR(p_Other.GetmystrR())    //<- ?
, m_Swap()
{ }

我的问题是: 那些(//<- ?)标记的线叫什么?我很想搜索它应该做什么以及为什么编写此代码的人使用它。

4

4 回答 4

7

它被称为初始化列表。

更多信息在优秀的常见问题解答http://www.parashift.com/c++-faq/init-lists.html

于 2012-08-27T10:05:21.843 回答
4

这称为初始化列表。它用于初始化类/结构成员变量的值。你可以在这篇不错的文章中看到更多关于这个的信息。

于 2012-08-27T10:05:34.627 回答
1

这些行正在初始化该对象的变量

IE

pff::MCCI  (inherited)
m_strS 
m_str
于 2012-08-27T10:09:00.387 回答
0

这些用于在类中初始化您的字段。这是这样做的:

class MyClass{
private:
    int my_int;
public:
    MyClass(int a):my_int(a){}

my_int 字段现在包含 a 的值。您所做的是调用要初始化的字段的构造函数。

于 2012-08-27T10:10:54.183 回答