请问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;

:是初始化列表方式,建议你看看相关章节再来理解.
B1(int a=0,int b=0):A(b) //就是这句
{ y1=a; }
其实可以写成:
B1(int a=0,int b=0):A(b),y1(a){}这就是初始化列表方式,你要是这都没弄懂,就到继承了,那肯定更不好理解!
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-06
当类继承的时候,其实是没有继承类的构造函数的,所以在对派生类中必须对基类进行初始化,而这个初始化必须是以初始化列表的形式初始化。
第2个回答  2008-11-06
初始化列表,跟在{}里面的初始化没有什么不同,但在非静态const类型以及引用型成员变量必须在初始化列表里面初始化,不能在{}里面初始化.A(b)就是用父类的构造函数进行一部分初始化.
第3个回答  2008-11-06
表示类之间的继承关系,即 class B1 继承了class A 的所有成员和操作函数

请问C++中一个构造函数后面加个冒号是什么意思
B1(int a=0,int b=0):A(b),y1(a){}这就是初始化列表方式,你要是这都没弄懂,就到继承了,那肯定更不好理解!

c++中冒号是什么意思
1 表示结构内位域的定义。2 构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。3 public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个"public:”或"private:”出现为止。"private:"为默认处理。4 类名冒号后面的...

C++中的冒号是什么意思?
回答:::称为作用域限定符,作用是声明该符号后面的函数、数据等属于哪个类, Student::display()表示作用域为Student类的display函数。:好像很少出现啊,你举例看下

VC++中构造函数后面接单冒号是什么意思?
构造函数后,接单冒号表示初始化列表。具体形式为 对于class TEST,存在成员变量int a,b,c;那么 TEST(int x, int y):a(x),b(y),c(0){} 的效果就是用括号内的值,来初始化成员变量值。与函数内部赋值相比,初始化列表的方式更高效。需要注意的是,初始化的顺序并不是依赖于a,b,c在初始化...

C++构造函数后面加冒号是什么意思?后面应该加什么内容呢?是赋初值...
冒号后面跟的是赋值,这种写法是C++的特性。A( int aa, int bb ):a(aa),b(bb){ } 相当于 A( int aa, int bb ){ a=aa;b=bb;}

c++构造函数后面加个冒号是做什么的?
上述语句中单冒号(:)的作用是表示后面是初始化列表,一般有三种使用场景。1、对父类进行初始化 调用格式为“子类构造函数 : 父类构造函数”,如下,其中QMainWindow是MyWindow的父类:MyWindow::MyWindow(QWidget* parent , Qt::WindowFlags flag) : QMainWindow(parent,flag)2、对类成员进行初始化 ...

框里的冒号后面是什么意思?
C++构造函数后面的:冒号是初始化成员变量用的。

C++类名后加冒号是什么意思
c++如下定义类函数后加冒号是表示函数属于这个类,类的成员函数定义在类外面的时候需要这么用。类的成员函数描述的是类的行为,是程序算法的实现部分,是对封装的数据进行操作的方法。类的成员函数的原型要写在类体中,原型说明了函数的参数表和返回值类型。而函数的定义一般在类外面,也可以直接在类内部定义。前者与普通...

c++中 冒号是什么意思
有很多地方会用冒号。比如冒号可以表示三目运算符“?:”的一部分;如果有两个冒号“::”则表示类的作用域运算符。还有就是循环结构switch中case后也要用冒号

关于C++的冒号的用法
还有很多用法啊,比如使用goto时要用的标记,a=a>3?a:3,等等

相似回答