初学C++,问个关于友元的问题

jsyuanlei 2008-10-17 10:59:38
初学C++,问个问题:
class ChainNode
{
friend class Chain;
};

class Chain
{
};

这段代码可以编译通过.
而把它们声明为模板之后的
template<class T>
class ChainNode
{
friend class Chain<T>;
};

template<class T>
class Chain
{
};
就痛不过了??

...全文
87 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsyuanlei 2008-10-17
  • 打赏
  • 举报
回复
感谢...
yyyapple 2008-10-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jsyuanlei 的回复:]
再问:

我想在 chain 里声明一个 类chainnode 的实体,就又错了.

template <class T>
class Chain
{
private:
ChainNode <T> *first;

};


template <class T>
class ChainNode
{
friend class Chain <T>;
private:
T data;
ChainNode <T> *link;
};
[/Quote]

template <class T> class ChainNode; //前置声明
template <class T>
class Chain
{
private:
ChainNode <T> *first;

};


template <class T>
class ChainNode
{
friend class Chain <T>;
private:
T data;
ChainNode <T> *link;
};
jsyuanlei 2008-10-17
  • 打赏
  • 举报
回复
再问:

我想在 chain 里声明一个 类chainnode 的实体,就又错了.

template<class T>
class Chain
{
private:
ChainNode<T> *first;

};


template<class T>
class ChainNode
{
friend class Chain<T>;
private:
T data;
ChainNode<T> *link;
};


JJZHK 2008-10-17
  • 打赏
  • 举报
回复
没有积分也要结贴哦,好习惯要从开始培养。
jsyuanlei 2008-10-17
  • 打赏
  • 举报
回复
万分感谢!第一次提问没有积分可以送给大家,下次一定补上.
JJZHK 2008-10-17
  • 打赏
  • 举报
回复
同意楼上。
yshuise 2008-10-17
  • 打赏
  • 举报
回复
#include <cstdlib>
#include <iostream>
#include <vector>

using namespace std;

template <class T>
class Chain
{
};

template <class T>
class ChainNode
{
friend class Chain <T>;
};




int main(int argc, char *argv[])
{



system("PAUSE");
return EXIT_SUCCESS;
}
yyyapple 2008-10-17
  • 打赏
  • 举报
回复
template <class T> 
class Chain
{
}; //放在上面


template <class T>
class ChainNode
{
friend class Chain <T>;
};

65,211

社区成员

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

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