C++怎么类外定义模板类的成员函数
几个模板类要来回互相new,不在外面定义不行
C++怎么类外定义模板类的成员函数 几个模板类要来回互相new,不在外面定
答案:2 悬赏:70
解决时间 2021-02-18 03:24
- 提问者网友:离殇似水流年飞逝
- 2021-02-17 10:07
最佳答案
- 二级知识专家网友:输掉的尊严
- 2021-02-17 10:19
是这样吗,试试看: #include using namespace std; template class Point { public: Point(numtype a,numtype b=0); void print(); private: numtype x,y; }; template Point::Point(numtype a,numtype b) { x=a; y=b; } template void Point::print() { cout< p(2); p.print(); return 0; }
全部回答
- 1楼网友:余生继续浪
- 2021-02-17 11:54
构造一个指向成员的指针需要显式使用 address-of 运算符('&')和限定名
这里,限定名一般是 “x::” 形式
所以,修改成这样:
print(&print2, &printclass::print);
就可以了
这是语法的规定,print2.print 这个在编译器看来是:
(printclass)print(&print2);
与void (printclass::*b)()这种形式并不匹配,如果你知道了 this 指针的定义,作用,应该能弄明白;&printclass::print 是不带 this 指针的“纯”函数,可用于模板实参推导。
继续加油,类与模板的结合功能就是强。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯