[C++] - Konwersja konstruktorem
Ostatnio zmodyfikowano 2011-11-06 11:28
sch4b3k Temat założony przez niniejszego użytkownika |
[C++] - Konwersja konstruktorem » 2011-11-05 18:01:33 Mam taki kod: #include "stdafx.h" #include <string> #include <iostream> #include <cstdio>
using namespace std;
class numer; class zespolona { private: double rzeczyw; double urojon; public: zespolona( double r = 0, double i = 0 ) : rzeczyw( r ) , urojon( i ) { } zespolona( numer ); friend zespolona dodaj( zespolona, zespolona ); void wyswietl() { cout << "Rzeczywista: " << rzeczyw << "\nUrojona: " << urojon << "\n"; } };
class numer { double n; string opis; friend zespolona::zespolona( numer ); public: numer( int k, string t = "bez opisu" ) : n( k ) , opis( t ) { } };
int main() { zespolona pierwsza( 2, 4 ), druga( 5, 3 ), wynik; wynik = dodaj( pierwsza, druga ); wynik.wyswietl(); wynik = dodaj( pierwsza, 4.3 ); wynik.wyswietl(); wynik = dodaj( 3.2, druga ); wynik.wyswietl(); getchar(); return 0; }
zespolona dodaj( zespolona a, zespolona b ) { zespolona suma; suma.rzeczyw = a.rzeczyw + b.rzeczyw; suma.urojon = a.urojon + b.urojon; return suma; } zespolona::zespolona( numer x ) { rzeczyw = x.n; urojon = 0; }
Jest to przyklad z Symfonii C++ standard. Niestety mam następujące błędy: Line 31: IntelliSense: copy constructor for class "numer" may not have a parameter of type "numer" Line 59: IntelliSense: member "numer::n" (declared at line 29) is inaccessible Line 31: IntelliSense: no instance of overloaded function "zespolona::zespolona" matches the specified type Nie wiem co zrobić, żeby to działało, pomóżcie proszę. PS. Nie wiem jak kod przedstawić w ramce w której jest kolorowa składnia. |
|
Drraven |
» 2011-11-05 18:36:35 Zbacz kurs STC na tej stronie: [.cpp]
class numer; Usun to. |
|
DejaVu |
» 2011-11-06 11:28:26
Przemyśl powyższy wiersz. |
|
« 1 » |