转载自:https://www.cnblogs.com/Allen-rg/p/11529949.html
冒号后面跟的是赋值,这种写法是C++的特性。
括号赋值只能在变量定义并初始化中,不能用在变量定义后再赋值,
F( int aa, int bb ):v_a(aa),v_b(bb){}
相当于
F( int aa, int bb ){
v_a=aa;
v_b=bb;
}
C++中一个构造函数后面加个冒号
#include<iostream.h>
class A
{
public:
int x;
A(int a=0){x=a}; }
};
class B1:publicA
{
public;
int y1;
B1(int a=0,int b=0):A(b) //就是这句
{ y1=a; }
};
请问那句后面的 :A(b) 代表什么啊,为什么要跟个B1基类的构造函数?
答:A(b)实际上是做的是用b初始化A的成员x;既x=b; :是初始化列表方式