通过下面的例子可以清晰的看出初始化顺序是这样的
1. 声明时
2. 初始化列表
3. 构造函数内赋值
#include <iostream>
#include <stdio.h>
#include <string>
class A {
public:
A():a(2),b(2){
b = 3;
}
void print_a() {
std::cout << a << std::endl;
std::cout << b << std::endl;
}
private:
int a = 1;
int b = 1;
int c;
};
int main() {
A aa;
aa.print_a();
return 0;
}