2014-11-14 20 views
1

我是C++的新手,無法找到在構造函數中聲明和初始化成員變量的正確方法,因此可能會在整個類的其他部分中使用它。正確的方法來區分類成員的聲明和初始化

我有一個公共構造有三個的std :: string作爲PARAMATERS自定義類 -

例如MyClass client("a", "b", "c");

從Java/C#背景的我已經習慣了在另一個類使用它像這樣:

public Class Foo 
{ 

    private MyClass client = null; 

    public Foo() 
    { 
    client = new MyClass("a", "b", "c"); 
    } 

    ... [can use MyClass member variable client in methods here] 

} 

我怎麼會去這樣做在C++類似的東西?我已經嘗試將MyClass client;放在我的頭文件中的私有塊中,然後在cpp文件中初始化它,如client("a", "b", "c");但這不起作用。

任何示例都會有所幫助。

謝謝。

+0

直接使用成員變量並不是最佳實踐,是嗎?我知道有些時候這樣做更方便,但是在我的腦海裏,在Java中這樣做的事情總是像試圖使用C結構一樣。 – ebullient

+0

我想我可能需要澄清我的問題描述。我並不是指在整個方法中使用客戶端(MyClass)的成員,我的意思是能夠在整個Foo中的方法中使用MyClass實例。 – kin3tik

回答

2

它是最簡單的形式。你應該真的讀一些關於C++類的東西。

class Foo 
{ 
    MyClass client; 

public: 
    Foo() : client("a", "b", "c") {} 
} 
+1

啊,初始化列表。我確實讀過,但忘記了,起初你的語法讓我感到困惑。 – kin3tik

+0

對不起,只是想讓它更緊湊:) – Aesthete