首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++模板类与友元函数的有关问题,请高手赐教

2012-09-09 
C++模板类与友元函数的问题,请高手赐教#includeiostream.htemplate class Tclass X{private:T npubli

C++模板类与友元函数的问题,请高手赐教
#include<iostream.h>
template <class T>
class X
{
private:
T n;
  public:
  X(T i) { n=i; }
  friend void f(X <T> &s)
  { s.n=2*s.n; }
  void disp()
  { cout<<"n="<<n<<endl; }
};
int main()
{
X<int> s1(2);
X<double> s2(1.23);
s1.disp();
s2.disp();
f(s1); 
f(s2);
return 0;
}
//程序运行结果:
//n=2 ?????为什么n不是4 
//n=1.23 ?????为什么n不是2.46

[解决办法]
int main()
{
X<int> s1(2);
X<double> s2(1.23);
//初始化完后,s1.n = 2, s2.n = 1.23

s1.disp(); //打印s1.n,当然是n = 2
s2.disp(); //打印s2.n, 当然是n = 1.23

f(s1);
f(s2);
return 0;
}


有什么不对
[解决办法]

C/C++ code
#include<iostream.h>template <class T>class X{private:    T n;public:    X(T i)     {         n = i;     }    friend void f(X <T> &s)    {        s.n = 2 * s.n;     }    void disp()    {        cout << "n=" << n << endl;    }};int main(){    X<int> s1(2);    X<double> s2(1.23);    f(s1);     f(s2);    s1.disp();    s2.disp();    return 0;} 

热点排行