初始化的顺序:和定义的顺序以及初始化函数都有关系。都要先定义的在前,后定义的在后。甚至连类的顺序都必须这样。

这种情况是在 codeblocks 里面发生的,但是在NETBEANS 里面没有,在VS里面呢?
class Course
{
public:
int n;
Course(int i):n(i){};
Course();
//Course();
virtual ~Course();
private:

};

class Student{

private:
typedef std::valarray<double> DBArray;


Course mycourse;

DBArray scores;


int n;

int m;

public:

Student(int i):mycourse(i),scores(mycourse.n){};
};

原文地址:https://www.cnblogs.com/gaoxianzhi/p/3224475.html