所以我现在正在实现一个c ++程序,问题是我不知道下面的上下文是否可能。
class Foo{
private:
int a;
public:
Foo(int _a) : a(_a){
}
void func(int _a) : a(_a){
//implementation shows here
}
};
正如你在这里看到的,有一个成员函数,它以类似构造函数的方式初始化成员变量。可能吗?
答案 0 :(得分:4)
不,它不可能并且没有多大意义:成员初始化仅在构造上执行。
在函数func
中,您可以将成员变量设置为其他内容,而 assignment 可以很好地完成该任务。
答案 1 :(得分:3)
没有。初始化列表只能与构造函数一起使用。
func
必须看起来像这样。
void func(int _a) {
a = _a;
//implementation shows here
}
显然func
无法初始化引用,Foo
构造函数将在func
运行之前被调用...