搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 一个类怎么持有其他类的引用?
标题:
一个类怎么持有其他类的引用?
只看楼主
dousao
等 级:
论坛游民
帖 子:228
专家分:58
注 册:2007-11-8
结帖率:
75%
楼主
已结贴
√
问题点数:20 回复次数:7
一个类怎么持有其他类的引用?
比如 A类中 想持有B类的引用 达到在A中操作B中变量的目的
A中申明 变量 B m_b;
A中申明 构造函数 A(B& b){m_b = b;}
编译不通过
搜索更多相关主题的帖子:
申明
其他
2010-11-29 15:11
zfan85
等 级:
新手上路
帖 子:25
专家分:8
注 册:2010-8-30
第
2
楼
得分:3
你定义了 class B的= 了么?
2010-11-29 15:28
玩出来的代码
来 自:河南新乡
等 级:
贵宾
威 望:
11
帖 子:742
专家分:2989
注 册:2009-10-12
第
3
楼
得分:3
在A中 B &m_b;
A(B& b):m_b(b){}
离恨恰如春草,更行更远还生。
2010-11-29 15:52
s545167866
等 级:
新手上路
帖 子:5
专家分:3
注 册:2010-11-28
第
4
楼
得分:3
3楼正解 你要用的是B的引用,你在A中定义的知识一个B的变量,不是引用类型的
2010-11-29 16:26
laoyang103
来 自:内蒙古包头
等 级:
贵宾
威 望:
19
帖 子:3082
专家分:11056
注 册:2010-5-22
第
5
楼
得分:3
你要知道构造函数调用的顺序:
1.如果这个类是个派生类,先调用基类的构造函数(你的显然不是)
2.如果你这类中有内嵌子对象,比如说像这样:
class A
{
public:
A();
~A();
private:
B b;//假如说B也是一个类
int a;
};
那么你应该先调用B类的构造函数,则A的构造函数应该实现如下:
A::A(int b1,int b2):b(b1,b2)//假如B类构造函数有两个参数
3.最后调用本类自己的构造函数
===========深入<----------------->浅出============
2010-11-29 16:38
ml232528
等 级:
蝙蝠侠
威 望:
5
帖 子:367
专家分:879
注 册:2007-7-23
第
6
楼
得分:3
class A
{
public:
A(B& b):m_b(b){};
~A();
private:
B &m_b;//假如说B也是一个类
};
-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2010-12-02 22:36
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
7
楼
得分:3
想定义引用类型的话,就是 3楼 说的那样。6楼 和 3楼 是一个意思。
2010-12-02 23:28
lintaoyn
等 级:
小飞侠
威 望:
4
帖 子:605
专家分:2489
注 册:2009-4-8
第
8
楼
得分:3
楼主可查阅初始化列表相关内容。
A(B& b){m_b = b;}//这是无初始化,相当于,B& m_b;m_b = b;
A(B& b):m_b(b){ }//这是给m_b进行初始化。相当于,B& m_b = b;
1。除了静态数据成员,其它的数据成员都是先在初始化列表里完成初始化,然后再进入函数体当中。没有在初始化列表里出现的,就调用其默认构造函数。(编译器可能会有优化行为。)
2。没有空引用,引用必须初始化。
迭代的是人,递归的是神。
2010-12-03 07:41
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-327263-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.113024 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved