请把这个程序解释下谢谢(主要是下面讲到构造函数对数据成员初始化的地方)

来源:百度知道 编辑:UC知道 时间:2024/06/23 22:14:40
#include<iostream>
using namespace std;
class A
{
public:
A(int i);
void print();
const int &r;
private:
const int a;
static const int b;
};
const int A::b=10;
A::A(int i):a(i),r(a){}
void A::print()
{
cout<<a<<":"<<b<<":"<<r<<endl;
}
int main()
{
A a1(100),a2(0);
a1.print();
a2.print();
}

构造函数对成员变量的初始化,你这个程序中有2种成员。一个是STATIC,一个是普通变量。
他们的区别是,每个类对象都保存着一份普通变量的拷贝,但是每个类对象共享STATIC变量。
所以输出结果应该是:
100:10
0:10

另外构造函数只有A(int i); ,而没有默认的构造函数,你得注意一下。

坑先