Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

przeladowanie operatora =

Ostatnio zmodyfikowano 2013-04-02 12:28
Autor Wiadomość
tp1234
Temat założony przez niniejszego użytkownika
przeladowanie operatora =
» 2013-04-02 10:25:52
Witam mam zdefiniowaną klasę:
C/C++
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:
C/C++
LiczbaZespolona LiczbaZespolona::operator =( int i )
{
    LiczbaZespolona wynik;
    re = i;
    im = i;
    return wynik;
}

gdy próbuję wykorzystać to przeciążenie:

C/C++
TYP Wektor_double::operator *( Wektor_double wektor )
{
    LiczbaZespolona wynik = 0; //TUTAJ
   
    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?
P-79777
pekfos
» 2013-04-02 10:34:42
Nie masz odpowiedniego konstruktora.
P-79778
DejaVu
» 2013-04-02 12:28:53
P-79783
« 1 »
  Strona 1 z 1