+ -
当前位置:首页 → 问答吧 → 大家帮我看看这个类的操作符重载哪错了

大家帮我看看这个类的操作符重载哪错了

时间:2011-12-11

来源:互联网

#include<iostream>

using namespace std;
class huffman

public:
int weight()const{return weight;}
huffman& operator=(huffman& a);
private:
int weight;
};
huffman& huffman::operator=(huffman& a)

  weight=a.weight;
  return *this;}
  huffman a,b;
  a=b;
为什么说此声明没有存储类或类型说明符?谢谢

作者: HS026   发布时间: 2011-12-11

这样便可
C/C++ code

#include<iostream>

using namespace std;
class huffman
{
public:
    int getWeight()const {return weight;}
    huffman& operator=(huffman& a);
private:
    int weight;
};
huffman& huffman::operator=(huffman& a)
{
    weight = a.weight;
    return *this;
}

int main()
{
    huffman a, b;
    a = b;
    //system("pause");
    return 0;
}

作者: mstlq   发布时间: 2011-12-11

与操作符没关系

C/C++ code
class huffman
{  
public:
    int weight()const{return _weight;}
    huffman& operator=(huffman& a);
private:
    int _weight; // 这个名不能与函数名相同
};

huffman& huffman::operator=(huffman& a)
{  
  _weight=a._weight;
  return *this;
}

作者: yisikaipu   发布时间: 2011-12-11