常成员函数?

lnabc 2005-08-01 08:44:24
#include
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) //请问这里a(i), r(a)如何理解?r是什么?r(a)中的a呢?
{
}

void A::print()
{
cout< }

void main()
{
A a1(100), a2(0);
a1.print();
a2.print();
}




该程序的运行结果为:

  100:10:100
   0:10:0

...全文
89 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2005-08-02
  • 打赏
  • 举报
回复
为了防止类的重复构造,也可以用这种方式赋值。
int a = r; 就相当于 int a(r);
String str = "abc"; 相当于 String str("abc");
这样就好理解了吧?
v41dugu 2005-08-02
  • 打赏
  • 举报
回复
这是另一种赋值的方法 特别在组合类中用得比较多
lnabc 2005-08-02
  • 打赏
  • 举报
回复
理解了 :)谢谢大家!
llf_hust 2005-08-01
  • 打赏
  • 举报
回复
是的
lnabc 2005-08-01
  • 打赏
  • 举报
回复
就相当于最后把i的值传给了r吗?
llf_hust 2005-08-01
  • 打赏
  • 举报
回复
a(i),r(a)相当于
a = i;
r = a;
lnabc 2005-08-01
  • 打赏
  • 举报
回复
在这个程序里请问这里a(i), r(a)中的i=?,a呢
Codavid 2005-08-01
  • 打赏
  • 举报
回复
格式就是:在构造函数的定义的后面加 :成员变量1(值1),成员变量2(值2)。。。
lnabc 2005-08-01
  • 打赏
  • 举报
回复
llf_hust() :我知道那是初始化,但是我不理解它的这种格式,请指点
foochow 2005-08-01
  • 打赏
  • 举报
回复
llf_hust() 正解
llf_hust 2005-08-01
  • 打赏
  • 举报
回复
/* 常量和引用必须在初始化列表中初始化 */

64,632

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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