Strona 1 z 1

[c++] podstawy

: śr lut 04, 2004 5:30 pm
autor: MASS
Siemka Ludzie, pomocy, mam egzamin z C++ , i nic z niego nie czaje, oto kilka pytań:

- Co to jest konstruktor/destruktor?
- Czym różni się deklaracja funkcji od definicji funkcji?
- Wymień podstawowe typy danych w jezyku C++?
- Opisz w jaki sposob w jezyku C++ tworzy sie program ktory działa z argumentami wywołania?
- Opisz strukturą programu C++

Kto wie gdzie to znaleśc, lub moze ktos zna odpowiedzi.
BŁAGAM o POMOC ;-(

Re: [c++] podstawy

: wt lut 17, 2004 3:03 pm
autor: Maciej Skrobiński
Najprościej jak można powiedzieć to konstruktor powoduje przydzielenie pamięci dla klasy, destruktor powoduje odwrotne działanie, czyli zwolnienie pamięci.

Deklaracja funkcji informuje kompilator, jaką zwróci wartość oraz jaką nazwę ma funkcja.
Definicja funkcji informuje kompilator jak funkcja działa.

Typy danych w C++:
char - typ znakowy
int - typ całkowity
float - typ zmiennoprzecinkowy
double - typ zmiennoprzecinkowy
void - typ pusty

Re: [c++] podstawy

: wt lut 17, 2004 5:19 pm
autor: wixor
Typy danych (wersja pełna):
W języku C/C++ wszystkie dane są liczbami.

char - 1 bajt ze znakiem (+ / -)
short - 2 bajty ze znakiem (+ / -)
int - 4 bajty ze znakiem (+ / -)
long int - 8 bajtów ze znakiem (+ / -)

float - 4 bajty, liczba zmiennoprzecinkowa ze znakiem (+ / -)
double - 8 bajtów, liczba zmiennoprzecinkowa ze znakiem (+ / -)
long double -10 bajtów, liczba zmiennoprzecinkowa ze znakiem (+ / -)

unsigned char - 1 bajt bez znaku
unsigned short - 2 bajty bez znaku
unsigned int - 4 bajty bez znaku
unsigned long int - 8 bajtów bez znaku.

Ponadto do każdego typu można utworzyć wskaźnik. Jest on wtedy postaci:
<nazwa typu>*, np. int*
Istnieje też wskaźnik nie wskazujący na dane żadnego typu, lecz na miejsce w pamięci. Jest on postaci void*. Jest to jedyny rodzaj wskaźnika na którym nie można wykonywać operacji arytmetycznych.
Deklaracja funkcji informuje kompilator, jaką zwróci wartość oraz jaką nazwę ma funkcja.
Definicja funkcji informuje kompilator jak funkcja działa.
Co do konstruktorów i destruktorów:

Kod: Zaznacz cały

class Klasa
{
  Klasa(unsigned int a);
  ~Klasa(void);
};
Klasa *k;
Klasa l; //W tym momencie jest wywoływany konstruktor bez parametrów
k = new Klasa(0xBAC0DE); //W tym momencie jest wywoływany konstruktor z parametrem 0xBAC0DE
delete k; //W tym momencie wywoływany jest destruktor
Jeżeli klasa nie zdefiniuje konstruktora bezparametrowego, jest tworzony konstruktor domyślny który nie robi nic. Analogicznie dla destruktorów. Uwaga: konstruktor jest wywoływany po utworzeniu obiektu a deskruktor przed jego unicestwieniem.