dziedziczenie i klasy - problemy

0

Hej.
Walczę aktualnie nad jednym programem, który muszę stworzyć i dopiero się właściwie uczę c++ i obiektowego, stąd kilka moich pytań :) Przepraszam, jeśli niektóre są mało ambitne.

  1. Gdy dodaję klasę automatycznie (korzystam z Visual Basic) to mi program dodaje takie coś w pliku .h:
 czlowiek(void);
	~czlowiek(void);

i takie w .cpp:

czlowiek::czlowiek(void)
{
}
czlowiek::~czlowiek(void)
{
}

Do czego to służy?

  1. Chcę stworzyć właściwość 'imię'. W pliku .h deklaruję ją jako
char imie[32];

Jak jednak w pliku .cpp mam uzupełnić jej wartość (chodzi mi o utworzenie tablicy imion, z której za każdym razem będzie losowo jedno wybierane). Mam obowiązek podzielić program na pliki, a wgl nie umiem zacząć - metody tworzy się w .cpp bez problemu, ale co z tym?

  1. Tworzę klasę dziedziczącą. Chcę, by przejęła ona metodę kup() od klasy nadrzędnej, ale modyfikowała ją minimalnie (jak mam w kup() ustaloną cenę, tak chcę, by w kup() dziedziczącej ta cena była np. -20). Czy muszę całą metodę przekopiować czy jest jakiś sposób, by zrobić to tak, jak ja chcę?

To na razie tyle :) Z góry dziękuję za pomoc.

0

(korzystam z Visual Basic)
Piszesz w C++ i korzystasz z VB? Coś mieszasz...
ad1. To jest konstruktor i destruktor -> poczytaj
ad2. Łańcuchy znaków w c++ -> poczytaj
ad3 Możesz z klasy potomnej wywołać metodę klasy nadrzędnej przez operator ::

ad1,2,3 materiałów traktujących o tej tematyce pełno

0

Faktycznie, przejęzyczenie, o Visual Studio oczywiście mi chodziło...
To doczytam i w razie czego będę jeszcze pytać :)
Dzięki za szybką odpowiedź!

0

Dalej mam problem związany z drugim punktem. Nie mogę znaleźć nigdzie informacji...
Otóż, spróbuję dokładnie wyjaśnić o co mi chodzi.

Mam np.
plik man.h i man.cpp
w man.h umieszczam

string imie[];

oraz przedstawsie();

w pliku man.cpp chce uzupelnic tablice 'imie' różnymi imionami. Gdybym robiła to w pliku nagłówkowym, to bym zrobiła po prostu tak: 
```cpp
string imie[]={"Marek", "Jarek", "Kasia"}; 

Jednak skoro mam dzielić program na pliki, to rozumiem, że dokładną wartość 'imie' powinnam zadeklarować w pliku .cpp
A może się mylę i w cpp deklaruję tylko metody?

0

Jesli chcesz programowac obiektowo musisz zrozumiec idee tego. Poczytaj najpierw podstawy o tym czym jest klasa co to jest konstruktor klasy, destruktor, konstruktor kopiujacy, lista inicjalizacyjna. Jak tworzyc obiekty klasy i odwolywac sie do metod klasy. Co to jest hermetyzacja. Potem mozna do tego dodac zaprzyjaznianie klas, dziedziczenie, funkcje wirtualne, przeciazanie operatorow itd. Najlepiej uczyc sie z jakiejs ksiazki, gdzie masz wszystko od podstaw wytlumaczone z przykladami.

 class nazwa {
private:
string imie;
public
nazwa();
~nazwa();
void Nazwij(string n);
void Wyswietl()const;

nazwa.cpp

...
void nazwa::Nazwij(string n)
{
    imie=n;
}
void nazwa::Wyswietl()const
{
 cout << imie;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1