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

これは初期化リストと呼ばれます。

優れたFAQの詳細情報http://www.parashift.com/c++-faq/init-lists.html

于 2012-08-27T10:05:21.843 に答える
4

これはイニシャライザリストと呼ばれます。これは、クラス/構造体メンバー変数の値を初期化するために使用されます。この素敵な記事でこれについてもっと見ることができます。

于 2012-08-27T10:05:34.627 に答える
1

それらの行は、そのオブジェクトの変数を初期化しています

すなわち

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 に答える