przeladowanie operatora =
Ostatnio zmodyfikowano 2013-04-02 12:28
tp1234 Temat założony przez niniejszego użytkownika |
przeladowanie operatora = » 2013-04-02 10:25:52 Witam mam zdefiniowaną klasę: class LiczbaZespolona { friend class Macierz_double; friend class Wektor_double; public: float re; float im; LiczbaZespolona operator *( const LiczbaZespolona & Arg2 ); LiczbaZespolona operator +( const LiczbaZespolona & Arg2 ); LiczbaZespolona operator =( int i ); }; oraz oraz przeciążenie znaku = dla tej klasy: LiczbaZespolona LiczbaZespolona::operator =( int i ) { LiczbaZespolona wynik; re = i; im = i; return wynik; } gdy próbuję wykorzystać to przeciążenie: TYP Wektor_double::operator *( Wektor_double wektor ) { LiczbaZespolona wynik = 0; for( int i = 0; i <= 3; i++ ) { wynik = wynik +( wspolrzedne[ i ] * wektor.wspolrzedne[ i ] ); } return wynik; } To kompilator wyrzuca mi błąd: conversion from ‘int’ to non-scalar type ‘LiczbaZespolona’ requested Nie rozumiem dlaczego on probuje konwertowac typ int na typ LiczbaZespolona skoro ma zdefiniowane przeciążenie tego operatora dla tej sytułacji. Pomożecie? |
|
pekfos |
» 2013-04-02 10:34:42 Nie masz odpowiedniego konstruktora. |
|
DejaVu |
» 2013-04-02 12:28:53 |
|
« 1 » |