[c++] obiekt skladowy a lista inicjalizacyjna
Ostatnio zmodyfikowano 2014-05-13 14:27
Carnage2k Temat założony przez niniejszego użytkownika |
[c++] obiekt skladowy a lista inicjalizacyjna » 2014-05-10 15:32:15 Witam. prosilbym o pomoc o co chodzi z lista inicjalizacyjna na podstawie zadania: Wykorzystując klasę Pojemnik stwórz nową klasę o nazwie Bipojemnik.
|
#include <cmath> #include <iostream> #include <string>
using namespace std;
class Pojemnik { private: string m_strNazwa; int m_nJednostka; double m_dPojemnosc; double m_dZajete; public: Pojemnik(); Pojemnik( string strNazwa, double dPojemnosc, double dDolano ); Pojemnik( Pojemnik const & zrod ); double Dodaj( double dCiecz ); void Wypisz(); };
int main() { cout << "podaj nazwe pojemnika: "; string strNazwa = " "; cin >> strNazwa; cout << "podaj pojemnosc: "; double dPojemnosc = 0.0; cin >> dPojemnosc; cout << "ile dolano: "; double dDolano = 0.0; cin >> dDolano; Pojemnik cP1( strNazwa, dPojemnosc, dDolano ); cP1.Wypisz(); return 0; }
Pojemnik::Pojemnik() : m_dPojemnosc( 0 ) , m_strNazwa( "bez nazwy" ) , m_nJednostka( 10 ) , m_dZajete( 0 ) { }
Pojemnik::Pojemnik( string strNazwa, double dPojemnosc, double dDolano ) : m_dZajete( 0 ) , m_nJednostka( 10 ) { m_dPojemnosc = pow( dPojemnosc, m_nJednostka ); m_strNazwa = strNazwa; Dodaj( dDolano ); }
Pojemnik::Pojemnik( Pojemnik const & zrod ) { m_strNazwa = zrod.m_strNazwa; m_nJednostka = zrod.m_nJednostka; m_dPojemnosc = zrod.m_dPojemnosc; m_dZajete = zrod.m_dZajete; }
double Pojemnik::Dodaj( double dCiecz ) { if( dCiecz > m_dPojemnosc ) { return m_dZajete =( dCiecz - m_dPojemnosc ); } else return m_dZajete = dCiecz *( - 1 ); }
void Pojemnik::Wypisz() { cout << "pojemnik: " << m_strNazwa << endl; cout << "pojemnosc: " << m_dPojemnosc << endl; if( m_dZajete < 0 ) cout << "w pojemniku: " <<(( - 1 ) * m_dZajete ) << endl; else { cout << "w pojemniku: " << m_dPojemnosc << endl; cout << "przelano: " << m_dZajete << endl; } }
|
|
SeaMonster131 |
» 2014-05-10 15:33:53 Nazwij poprawnie temat i formatuj kod: Kurs STC. |
|
michal11 |
» 2014-05-11 22:05:17 Cyba o to chodzi class A { int b; public: A( int x ) : b( x ) { }; ~A() { }; };
class B { public: A skl; B( int px ) : skl( A( px ) ) { }; ~B() { }; };
|
|
pekfos |
» 2014-05-12 11:20:59 Co to za ustrojstwo? Destruktory są niepotrzebne. |
|
Carnage2k Temat założony przez niniejszego użytkownika |
» 2014-05-13 14:27:52 Dzieki za pomoc. ponizej zamieszczam program dla zainteresowanych: #include <iostream> #include <string>
using namespace std;
class Pojemnik { public: string m_strNazwa; int m_nJednostka; double m_dPojemnosc; double m_dZajete; public: Pojemnik() { }; Pojemnik( string strNazwa, int nJednostka, double dPojemnosc, double Zajete ); ~Pojemnik() { }; };
class Bipojemnik : public Pojemnik { private: Pojemnik m_cPojA; Pojemnik m_cPojB; public: Bipojemnik() { }; Bipojemnik( Pojemnik cPoj1, Pojemnik cPoj2 ); ~Bipojemnik() { }; };
int main() { Pojemnik cPoj1( "wiadro", 10, 3000, 0 ); Pojemnik cPoj2( "butelka", 10, 4000, 0 ); Bipojemnik cBipoj( cPoj1, cPoj2 ); return 0; }
Pojemnik::Pojemnik( string strNazwa, int nJednostka, double dPojemnosc, double dZajete ) : m_strNazwa( strNazwa ) , m_nJednostka( nJednostka ) , m_dPojemnosc( dPojemnosc ) , m_dZajete( dZajete ) { }
Bipojemnik::Bipojemnik( Pojemnik cPoj1, Pojemnik cPoj2 ) : m_cPojA( cPoj1 ) , m_cPojB( cPoj2 ) { }
|
|
« 1 » |