类中的引用成员好难控制呀!!!!!

minchenchao 2006-11-22 11:50:04
class A
{
B& b;
public:
A(B& b1):b(b1) {}
};

上面的类A没有默认构造函数。那么,
class C
{
map<int,A> m

public:
C() {//..}
};

类C应该会有问题。那么,对于这样的情况该如何解决呢??
...全文
179 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
minchenchao 2006-11-23
  • 打赏
  • 举报
回复
谢谢!!
taodm 2006-11-23
  • 打赏
  • 举报
回复
引用成员基本等价于指针,好处是免掉了对指针进行非0判断,坏处时必须在构造对象时就绑定所引用的对象,而且以后不可重绑定。
有得就有失。楼主的应用决定了,你不能使用引用成员。
别浪费时间了,改回指针吧。
abblly 2006-11-22
  • 打赏
  • 举报
回复
上面的类A没有默认构造函数。那么,
-------------
提供一个默认构造函数就行了
public:
A():b(B()) {}
mab就要求second有默认值的
OOPhaisky 2006-11-22
  • 打赏
  • 举报
回复
引用成员本身就会存在很多问题的,要慎用!
OOPhaisky 2006-11-22
  • 打赏
  • 举报
回复
这种情况下,楼主就不要用引用成员了,改用指针成员,否则无解。
另外,引用成员还会引起其他问题,比如编译器不会为你合成default constructor(即使你没有定义A(B&)这个构造函数),也不会为你合成copy assignment operator。
minchenchao 2006-11-22
  • 打赏
  • 举报
回复
在项目中起初我是用指针做的,现在想换成引用,遇到了很多问题。
healer_kx 2006-11-22
  • 打赏
  • 举报
回复
改用指针!~
healer_kx 2006-11-22
  • 打赏
  • 举报
回复
引用多用于函数传递参数,这话不是我说的,是C++ Primer说的.
iambic 2006-11-22
  • 打赏
  • 举报
回复
尽量不要使用类成员引用,除非你极其严格地限制你的类行为。

65,208

社区成员

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

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