首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在普通类的友元函数中发送模板类论据

如何在普通类的友元函数中发送模板类论据
EN

Stack Overflow用户
提问于 2013-12-12 14:49:47
回答 3查看 38关注 0票数 0

下面是我的代码

代码语言:javascript
复制
template<class t>
class stack{
        private: t val;
                 stack *next;
        public:  stack(t);
                 //void push(stack &st);
                 //void traverse();
};
class pstack{
  public:
        static pstack *top;
        friend void push(stack &,pstack *);  //This line is not working
};

stack是模板类,pstack是非模板类。在"pstack“类中,"push”是一个带参数的朋友函数,它是模板类"stack“的一个对象。

请帮我纠正这个推送功能。

EN

回答 3

Stack Overflow用户

发布于 2013-12-12 14:51:37

您还必须使push函数成为模板:

代码语言:javascript
复制
class pstack{
  public:
        static pstack *top;

        template<typename T>
        friend void push(stack<T> &,pstack *);
};
票数 0
EN

Stack Overflow用户

发布于 2013-12-12 14:53:05

也将你的朋友声明为模板:

代码语言:javascript
复制
class pstack{
  public:
        static pstack *top;
        template <class T> friend void push(stack<T> &,pstack *); 
};
票数 0
EN

Stack Overflow用户

发布于 2013-12-12 14:54:02

类模板在使用前需要实例化。因此,在函数声明中,需要向stack添加一个模板类型参数。

friend void push(stack<Type> &, pstack *);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20536815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档