类初始化列表MIL的一些细节

#include <iostream>
using namespace std;

class Base
{
public:
 Base(int k ):j(k),i(Fun())
 {
  
 }
 
 int  j ;
 int i ;
   
 int Fun() {
  return 2 * j ;
 }
 void show()
 {
  cout<< i<<endl;
 }

};


void main()
{
    Base * b = new Base(3);
 b->show();    //Output :  6

    delete b;
}

在初始化列表中, i的值由成员函数决定,而函数依赖于j ,所以j要在列表的i之前赋值,并且,

成员变量的声明顺序也要和列表一致 !!

 

你可能感兴趣的:(类初始化列表MIL的一些细节)