2014-11-14 22 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