class A{
public:
 int a,b;
 A(int a,int b):a(a),b(b){}
 void print(ostream &o)const{
  o<<(this->a)<<" "<<(this->b);
 }
};
ostream& operator<<(ostream& os,const A& a){
 a.print(os);
 return os;
}
int main(){
    A a(1,2);
 cout<<a;
}

对于<<的重载,应放在类外,通过类中的函数实现,注意,print的const很重要,否则会产生把const A*强制转化为A*的error~

posted on 2008-11-29 15:07  CUCmehp(likesmiles)  阅读(106)  评论(0编辑  收藏  举报