C++ 单冒号初始化
一、定义介绍
单冒号可以给类构造函数的成员变量进行初始化,在代码中如下:
class A
{
public:
A();
~A();
int a;
const int b;
}
//使用:初始化a为1,b为2
A::A():a(1),b(2)
{
}
但要注意它不相当于如下所示的赋值代码,下面这样写是给a、b赋值,而不是初始化
A::A()
{
a = 1;//正确,给a赋值1,相当于给a初始化
b = 2;//错误,b是const变量,此处给b赋值2是错误的,会报错
}
此外,初始化的顺序与成员变量声名的顺序相同,并不由你写的顺序决定,如下所示,虽然写的时候是把b初始化放在a前面,但实际初始化还是由类中所写顺序决定。因此,假设此时输出a,a将是一个随机数,读者不妨试一下。
A::A():b(2),a(b)
{
}
二、功能作用
简化操作,方便程序员编写代码
三、使用方法
1.编码格式
classname::classname(): a(num)
{
}
2.代码示例
#include <iostream>
class A
{
public:
A();
~A();
int a;
const int b;
}
A::A():a(1),b(2)
{
}
int main()
{
cout << A.a << endl;
cout << A.b << endl;
return 0;
}
输出:
1
2
来自:九七的C++教程(转载请注明出处)