我想把类作为类自己的成员定义, 有什么办法?

gerry2000 2007-08-01 11:28:55
类似于这样, 当然这样编译不过
class A
{
public:
int i;
A a;
};
...全文
277 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
kobemadi 2012-03-06
  • 打赏
  • 举报
回复
正在做这个东西,谢谢各位了
taodm 2007-08-01
  • 打赏
  • 举报
回复
是哪个家伙让他用引用的?自己来善后。
gerry2000 2007-08-01
  • 打赏
  • 举报
回复
指针没问题, 但引用竟然会报链接错误, 我是这么写的
class A
{
public:
A();
~A();
public:
int i;
A &a;
};



int main()
{
A test;
test.i = 10;
A test1 = test;
cout << test.i << endl << test1.i << endl;
getchar();

return 0;
}

test error LNK2019: 无法解析的外部符号 "public: __thiscall A::~A(void)" (??1A@@QAE@XZ) ,该符号在函数 _main 中被引用
test error LNK2019: 无法解析的外部符号 "public: __thiscall A::A(void)" (??0A@@QAE@XZ) ,该符号在函数 _main 中被引用
test fatal error LNK1120: 2 个无法解析的外部命令


飞哥 2007-08-01
  • 打赏
  • 举报
回复
我也没发言呢
jixingzhong 2007-08-01
  • 打赏
  • 举报
回复
呵呵
jixingzhong 2007-08-01
  • 打赏
  • 举报
回复
A* a;

然后在构造/或其他成员中处理 ...
taodm 2007-08-01
  • 打赏
  • 举报
回复
拜托,我还没发言呢,Kenmark兄弟,醒醒啊。
NWCforever 2007-08-01
  • 打赏
  • 举报
回复
class A {
A& refA;
A* pA;
}

这两种方式都行。看具体情况了
我啃 2007-08-01
  • 打赏
  • 举报
回复
class A
{
public:
int i;
A a;
};
这样变成了嵌套定义,如果实例化就有问题了
A b;
b.a.a.a.a.a.a.a.a.a.a.…………可以无限下去,编译器不能知道到底药分配多少内存
要使用引用类型
可以是指针
如taodm的例子,这样包含的只是一个指针,不赋值是不指向任何东西的
  • 打赏
  • 举报
回复
class A
{
public:
int i;
A* a;//用指针
};
我啃 2007-08-01
  • 打赏
  • 举报
回复
通常我都是中午吃早饭,下午吃晚饭的,所以~
类里面定义的引用和常量等都是在初始化列表里面初始化的,所以说就是在类实例化的才将数据绑定到类的~
gerry2000 2007-08-01
  • 打赏
  • 举报
回复
谢谢各位啦
marrco2005(高手前传) 果真可以 :-)。
lockhall 2007-08-01
  • 打赏
  • 举报
回复
我看Kenmark象是提前持了晚飯

撐的眼花了。

哈哈
nevergone 2007-08-01
  • 打赏
  • 举报
回复
Kenmark 厉害.
早饭到现在还没有吃~~~~
我啃 2007-08-01
  • 打赏
  • 举报
回复
饿,看错人了嘛,早饭没有吃,眼睛花了~
marrco2005 2007-08-01
  • 打赏
  • 举报
回复
类中有引用也是可以的。
class A
{
public:
A( )
: a(*this)
{
}

A( A* p)
: a( *p )
{
}


~A()
{
}

void Display()
{
printf("\n the value of _k is %d \n", _k);
}

int _k;
A& a;
};
lockhall 2007-08-01
  • 打赏
  • 举报
回复
屬于不完全聲明。

用指針吧。。。。
尹立 2007-08-01
  • 打赏
  • 举报
回复
推荐用指针
在一些应用中也很常见的
比如说建立一个关于类的链表

64,647

社区成员

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

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