class Foo
{
public:
// single parameter constructor, can be used as an implicit conversion
Foo (int foo) : m_foo (foo)
{
}
int GetFoo () { return m_foo; }
private:
int m_foo;
};
m_foo是私有部分中定义的整数,但是什么是m_foo(foo)?看起来像一个功能。
m_foo既是整数又是函数?这有什么作用?
和Foo(int foo)构造函数正在扩展m_foo函数。
答案 0 :(得分:5)
Foo (int foo) : m_foo (foo)
这是initializer list。它会将m_foo
初始化为值foo
。
答案 1 :(得分:2)
您正在使用初始化列表初始化整数变量。在您输入构造函数m_foo
的主体之前,基本上是foo
。{/ p>
答案 2 :(得分:1)
这是一个初学者。它通过调用它的copy-constructor来设置m_foo
项的值(而不是创建一个临时对象,然后调用copy-constructor,如果你要在m_foo = foo
之类的构造函数中设置它)。 / p>
答案 3 :(得分:-1)
我不确定关于C ++的基本问题是否适用于此,但是:
Foo (int foo) : m_foo (foo)
表示:定义构造函数,并使用m_foo
形式参数初始化成员变量foo
。