| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 358 人关注过本帖
标题:类摸板和重载<操作符的问题,求助 。
取消只看楼主 加入收藏
wuyun8536
Rank: 2
等 级:论坛游民
帖 子:21
专家分:77
注 册:2009-6-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:0 
类摸板和重载<操作符的问题,求助 。
前几天在这个论坛上看的一个程序!编译没有问题,链接时出现问题:
Linking...
D:\MinGWStudio\Templates\w\Debug\w.o(.text+0x9b): In function `main':
D:\MinGWStudio\Templates\w\w.cpp:48: undefined reference to `operator<<(std::ostream&, Vec3<double> const&)'

程序如下:

w.exe - 1 error(s), 0 warning(s)
#include<iostream>
using namespace std;

template<typename W>
 class Vec3;
    
template<typename U>
 ostream& operator<<(ostream&,const Vec3<U>&);

template<typename T>
 class Vec3
{
private:
    T x;
    T y;
    T z;
public:
    T GetX()const{return x;}
    T GetY()const{return y;}
    T GetZ()const{return z;}
   
    Vec3<T>(T a,T b,T c):x(a),y(b),z(c){}
    friend ostream& operator<<(ostream&,const Vec3<T>&);
    friend Vec3<T> operator+(Vec3<T>& x,Vec3<T>& r);

};

  template<typename T>
  ostream& operator<<(ostream& out,const Vec3<T>& r)
    {
           out<<"("<<r.GetX()<<","<<GetY()<<","<<GetZ()<<")";
           return out;
    }
  
  template<typename T>
  Vec3<T> operator+(Vec3<T>& x,Vec3<T>& r)
    {
     Vec3<T> a;
     a.x=x.GetX()+r.GetX();
     a.y=x.GetY()+r.GetY();
     a.z=x.GetZ()+r.GetZ();
      return a;
    }
int main()
{
    Vec3<double> a(1,2,3);
    Vec3<double> b(3,4,5);
    cout<<a;
    return 0;
}
搜索更多相关主题的帖子: 重载 
2009-07-23 10:27
快速回复:类摸板和重载<操作符的问题,求助 。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035895 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved