Hej chłopaki:)
Mam napisać na uczelnie taki program:
Opis programu:
Program jest napisany technika obiektowa.
Program posiada klasę, dwa konstruktory oraz destruktor. Pierwszy konstruktor ma za zadanie
stworzyc dynamicznie tablice liczb calkowitych nastepnie wypelnic ja wartosciami i wypisac na ekranie.
Drugi konstruktor jest konstruktorem kopiujacym, ktory ma za zadanie przekopiowac wartosc poprzedniego
obiektu klsy DYNAMIC do innego EXP.
Wykonałam to w taki sposób:
#include <iostream>
using namespace std;
class dynamic
{
private:
int sk_jed;
public:
dynamic(int dana); // zwyczajny konstruktor
dynamic(dynamic&exp); // konstruktor kopiujacy
void wyswietl(); // zwyczajna funkcja skladowa
~dynamic(); // destruktor
};
//////////////////////////////////////////////////////////////////
/*Definicje funkcji skladowych: */
dynamic::dynamic(int dana)
{
int *wsk;
sk_jed = dana;
//wypelnienie tablicy
for(int i = 0; i < dana; i++)
{
wsk = new int[i];
*wsk = dana;
}
}
void dynamic::wyswietl()
{
for(int i = 0; i < sk_jed; i++)
cout << "[" << i << "] " ; // taka sama sytuacja jak wczesniej wiec klamry niepotrzebne
cout << endl; // zeby bylo czytelniej przy wyswietleniu...
}
dynamic::~dynamic()
{
cout << endl; //dla czytelnosci po wyswietleniu...
cout << "::Dziala destruktor::" << endl; // endl ponownie dla czytelnosci po wyswietleniu...
}
dynamic::dynamic(dynamic&exp) // definicja konstruktora kopiujacego jak widac "nic" skomplikowanego
{
sk_jed = exp.sk_jed;
}
///////////////////////////////////////////////////////////////////////////
int main()
{
int rozmiar;
std::cout << "Podaj rozmiar tablicy:\n "; cout << ">> ";
cin >> rozmiar;
cout << "Rozmiar, ktory podales to: " << rozmiar << endl;
cout << "::Przystepuje do konstruowania tablicy::" << endl << endl;
dynamic tablica(rozmiar);
dynamic exp(tablica);
cout << ":::Tablica zostala poprawnie skonstruowana, wyswietlam:::" << endl << endl;
tablica.wyswietl();
cout << "\n\n";
cout << "::Program przystepuje do tworzenia kopii obiektu\n przy pomocy konstruktora kopiujacego::\n" << endl;
exp.wyswietl();
}
Program działa ale nie wiem czy to dobrze zrobiłam tzn czy poprawnie bo kompilator na ideone z C++11 wywala błąd.. natomiast zwykły nie i męczy mnie to troszkę :(
Pomożecie?