在成员函数中初始化成员变量
问题描述:
所以我现在正在实现一个C++程序,事情是我不知道下面的上下文是否可能。在成员函数中初始化成员变量
class Foo{
private:
int a;
public:
Foo(int _a) : a(_a){
}
void func(int _a) : a(_a){
//implementation shows here
}
};
正如你在这里看到的,有一个成员函数,它以构造函数的方式初始化一个成员变量。可能吗?
答
不,这是不可能的,没有多大意义:成员初始化只在建设上执行。
在函数func
中,您将成员变量设置为其他值,并且赋值可以很好地完成这项工作。
答
编号初始化列表只能与构造函数一起使用。
func
将看起来像这样。
void func(int _a) {
a = _a;
//implementation shows here
}
显然func
无法初始化引用,func
可以运行前的Foo
构造函数将被称为...
感谢您的回答。 – Windforces
@Windforces,如果这回答你的问题。接受它以将其标记为将来引用读者的解决方案。 – StoryTeller
我不能因为我在10分钟前接受另一个问题的另一个答案。所以我需要10分钟来接受你的答案。 – Windforces