Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > перегрузка операторов


Автор: 4ybaka 21.10.2007, 22:48
давно не садился за плюсы,а тут нужно было помочь лабу сделать - перегрузка операторов.всего навсего!да что там делать!не тут то было...
короче,сначало все было в VS2003.был такой вот код(только перегружаемые операторы и конструкторы):
Код

complex(double Re, double Im);
complex(complex z);//на это он вообще ругался и ни в какую не хотел компилить
complex();
complex& operator=(complex z);//это тоже ругал как мог
complex operator+(complex z1,complex z2);
complex operator*(complex z1,complex z2);
complex operator*(double num,complex z);
complex operator*(complex z1,double num;

думал приду домой,сделаю все почеловечески.дома VS2005.скинул код,компилю...а он говорит,что в
Код

complex operator+(complex z1,complex z2);

слишком много параметров!ладно,оттуда можно убрать один...но вот что делать с умножением на число?слева и справа?как ему объяснить кто из них левый а кто правый...а вот конструктор "complex(complex z);" и оператор "complex& operator=(complex z);" проглотил и даже не подавился!
в итоге имею 2 полурабочих варианта на разные студии...объясните,кто из нас троих сошел с ума?..

зы: забыл что в 2003 операторы были static,но в 2005 он меня отругал за это!пришлось убрать...

Автор: jonie 21.10.2007, 23:55
Цитата

в итоге имею 2 полурабочих варианта на разные студии...объясните,кто из нас троих сошел с ума?..
ты.
Код

friend operator@(type1,type2); //по анаогии
complex(const complex& z);
complex& operator=(const complex& z);

и т.п.

Автор: 4ybaka 22.10.2007, 00:26
мда,с этим не поспоришь  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)