捉虫1,为什么非要写成初始化列表呢?

#include <iostream>

#include <cstring>

using namespace std;



class claB{

	public:

	int sum;

//	claA * pa;

	claB(int tmp){sum=tmp;}

	claB(claB& tmp){sum=tmp.sum;}//这里最好加const,否则下面只要不小心写了const,这个复制构造函数就没法被调用。 

	claB * getP(){return this;}



};

class claA {

	public:

		int age;

		claB & pb;

		//claA(int tmp, claB& p) {age=tmp; pb(p);}//必须写成初始化列表的形式,否则会报错。 	[Error] uninitialized reference member 'claA::pb' [-fpermissive]

		claA(int tmp, claB& p) : age(tmp), pb(p) {}

 		void peek(){ cout<<pb.sum;}

		 	 

};



int main()

{

claB b(35);

claA a(12,b);

claB * pb=b.getP();

cout<<(*pb).sum;

cout<<b.sum;

return 0;

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值