在成员函数中初始化成员变量

时间:2016-06-21 08:50:56

标签: c++

所以我现在正在实现一个c ++程序,问题是我不知道下面的上下文是否可能。

class Foo{
     private:
          int a;
       public:
          Foo(int _a) : a(_a){

           }   

          void func(int _a) : a(_a){
              //implementation shows here
         }   
 }; 

正如你在这里看到的,有一个成员函数,它以类似构造函数的方式初始化成员变量。可能吗?

2 个答案:

答案 0 :(得分:4)

不,它不可能并且没有多大意义:成员初始化仅在构造上执行。

在函数func中,您可以将成员变量设置为其他内容,而 assignment 可以很好地完成该任务。

答案 1 :(得分:3)

没有。初始化列表只能与构造函数一起使用。

func必须看起来像这样。

      void func(int _a) {
         a = _a; 
          //implementation shows here
     } 

显然func无法初始化引用,Foo构造函数将在func运行之前被调用...