:是什么意思?

fy 2000-04-17 08:45:00
class X {
int i;
public:
X(int I = 0) : i(I) {}//这里边的:是什么意思?
void modify() { i++; }
};
请大侠赐教。
...全文
326 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
glite 2001-01-15
  • 打赏
  • 举报
回复
有趣
kingfish 2001-01-15
  • 打赏
  • 举报
回复

初始化成员列表

好多书中都有的,如《Thinking in c++》.
看看书就知道了
overmind 2001-01-14
  • 打赏
  • 举报
回复
class A
{
public:
A(int m){x=m;}
private:
int x;
};

class B:public A
{
public:
B(int m,int n,int p,int q);
const int x;
private:
A aa;
int y;
};

B::B(int m,int n,int p,int q):A(m),aa(n),x(p)
{
y=q;
}

void main(void)
{
B b(1,2,3,4);
}

:是成员初始化列表,
包括1.基类初始化A(m)
2.子对象初始化aa(n)
3常数据成员的初始化x(p)
nationphone 2000-06-07
  • 打赏
  • 举报
回复
这就是所谓初始化成员表的类初始化方法.另一种方法当然是在构造函数中初始化.
其实这种语法更常用于调用此类的父类的构造函数.
gogocat 2000-06-06
  • 打赏
  • 举报
回复
这是一个构造函数时付初值的办法如果你有一个类,其中有两个变量x,y你想在构造函数时给X附2,给Y附1,那么你可以如下写:
class myclass{
int x,y;
public:
myclass():x(2),y(1){}
};
Shania 2000-05-10
  • 打赏
  • 举报
回复
A
xubin_sh 2000-04-30
  • 打赏
  • 举报
回复
X(int I = 0) : i(I) != X(int I=0){i=I;}
参见微软出的C++语法手册(Microsoft Press)
clumboy 2000-04-19
  • 打赏
  • 举报
回复
X(int I=0)表示次构造函数的参数I为int型,且缺省为0。后面的:i(I)是一种为参数赋值的方法,在你的例子中,它与:X(int I=0){i=I;}完全等效!但是如果前面是:
const int i;
就不一样了,在函数体中赋值会产生错误,只能用":i(I)"。如bluesky所说。
bluesky 2000-04-17
  • 打赏
  • 举报
回复
:的意思是i的赋值在构造函数调用前执行,一般对const的成员数据进行初始化,另一种情况是用来初始化对象成员数据的.

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧