2016-06-21 110 views
1

所以我现在正在实现一个C++程序,事情是我不知道下面的上下文是否可能。在成员函数中初始化成员变量

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

      } 

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

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

回答

4

不,这是不可能的,没有多大意义:成员初始化只在建设上执行。

在函数func中,您将成员变量设置为其他值,并且赋值可以很好地完成这项工作。

+0

感谢您的回答。 – Windforces

+2

@Windforces,如果这回答你的问题。接受它以将其标记为将来引用读者的解决方案。 – StoryTeller

+0

我不能因为我在10分钟前接受另一个问题的另一个答案。所以我需要10分钟来接受你的答案。 – Windforces

3

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

func将看起来像这样。

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

显然func无法初始化引用,func可以运行前的Foo构造函数将被称为...