Bardzo proszę o odpowiedz na następujące pytania:(c++) 1.Funkcje definiowane w C++-deklarowanie i wywoływanie 2.Parametry formalne i parametry aktualne 3. Elementy definicji klasy 4.Deklarowanie obiektów danej klasy 5 Etykiety private, public, protected 6 Deklaracja danych w klasach
Proszę nie podawać stron z neta.Jak ktoś się podejmie tego proszę o rozwiązanie wszystkich pytań .
CCCP
1) Deklaracja funkcji w C++ wygląda tak: typ_zawracanej_wartości nazwa funkcji (typy przyjmowanych argumentów). Przykład: char Wypisz (char* imie) lub int Dodaj (int, int). Definicja funkcji to jej ciała np. int Dodaj (int a, int b) { return a+b; }
Ta funkcja zawraca wartość typu int, która jest sumom przekazanych do niej argumentów. Funkcję wywołujemy w programie podając jej nazwę oraz listę argumentów np.
#include <iostream> using namespace std; //deklaracja funkcji Dodaj int Dodaj (int a, int b) { return a+b; }
int main (int argc, char* argv[]) { int x, x,suma; cout<<" Podaj a:\n"; cin >> x; cout<<" podaj b: \n"; cin >> y;
suma = Dodaj (x,y); //Wywołanie funkcji Dodaj i wpisanie efektu dziłania funkcji do zmiennej suma. cout<<" Suma to: " <<suma; getchar(); }
2. Parametr formalny to ten, który widnieje w momencie deklaracja funkcji, u nas to a i b (vide "int Dodaj (int a, int b)"). Parametr aktualny to ten parametr, z którym wywołujemy naszą funkcje. U nas to: x i y (patrz: suma = Dodaj (x,y))
3. Definicja klasy ma taki schemat: class nazwa_klasy_czyli_nowego_typu { elementy klasy; }; Np. class My_type { int a; char b; };
Utworzyłem typ, o nazwie My_type, który zawiera w sobie dwa elementy: zmienna a typu int i zmienną b typu char.
4. Deklaracja obiektów klasy nie różni się niczym od deklaracji zmiennej typu wbudowanego. Np. My_type X; Tworzy obiekt X typu My_type.
5. Etykiety te określają możliwość operowania na elementach klasy z zewnątrz. public: wszyscy mają dostęp do el. klasy czyli np. jeśli klasa ma postać: class My_type { public: int a; char b; }; mogę napisać X.a = 10; X.b = 'c';
private: składniki klasy są pracować czyli pracować na niech może tylko funkcja składowa klasy. Tak więc jeśli napiszę:
class My_type { private: int a; char b; }; to takie działanie: X.a = 10; X.b = 'c'; spowoduje błąd kompilacji. Dodam, że jest możliwość pracy na prywatnych elementach klasy z zewnątrz za pomocą specjalnych funkcji, które nazywają się konstruktorem i destruktorem.
protected: dostęp do el. klasy mają tylko funkcję składowe i zaprzyjaźnione z klasą.
Mając taką klasę: class My_type { protected: int a; char b;
void Zapis (int x, char y) { a = x; b = y; } };
Wtedy funkcja Zapis może modyfikować wartość zmiennych a i b.
6. To zostało zrobione już na początku - rzeczone zmienne wewnątrz klasy to składowe klasy. Np. class My_type { protected: int a; char b;
void Zapis (int x, char y) { a = x; b = y; } }; W tej klasie, składowymi są zmienne a,b oraz funkcją Zapisz().
typ_zawracanej_wartości nazwa funkcji (typy przyjmowanych argumentów).
Przykład:
char Wypisz (char* imie) lub int Dodaj (int, int).
Definicja funkcji to jej ciała np.
int Dodaj (int a, int b)
{
return a+b;
}
Ta funkcja zawraca wartość typu int, która jest sumom przekazanych do niej argumentów.
Funkcję wywołujemy w programie podając jej nazwę oraz listę argumentów np.
#include <iostream>
using namespace std;
//deklaracja funkcji Dodaj
int Dodaj (int a, int b)
{
return a+b;
}
int main (int argc, char* argv[])
{
int x, x,suma;
cout<<" Podaj a:\n";
cin >> x;
cout<<" podaj b: \n";
cin >> y;
suma = Dodaj (x,y); //Wywołanie funkcji Dodaj i wpisanie efektu dziłania funkcji do zmiennej suma.
cout<<" Suma to: " <<suma;
getchar();
}
2. Parametr formalny to ten, który widnieje w momencie deklaracja funkcji, u nas to a i b (vide "int Dodaj (int a, int b)").
Parametr aktualny to ten parametr, z którym wywołujemy naszą funkcje. U nas to: x i y (patrz: suma = Dodaj (x,y))
3. Definicja klasy ma taki schemat:
class nazwa_klasy_czyli_nowego_typu
{
elementy klasy;
};
Np.
class My_type
{
int a;
char b;
};
Utworzyłem typ, o nazwie My_type, który zawiera w sobie dwa elementy: zmienna a typu int i zmienną b typu char.
4. Deklaracja obiektów klasy nie różni się niczym od deklaracji zmiennej typu wbudowanego.
Np. My_type X;
Tworzy obiekt X typu My_type.
5. Etykiety te określają możliwość operowania na elementach klasy z zewnątrz.
public: wszyscy mają dostęp do el. klasy czyli np.
jeśli klasa ma postać:
class My_type
{
public:
int a;
char b;
};
mogę napisać
X.a = 10;
X.b = 'c';
private: składniki klasy są pracować czyli pracować na niech może tylko funkcja składowa klasy. Tak więc jeśli napiszę:
class My_type
{
private:
int a;
char b;
};
to takie działanie:
X.a = 10;
X.b = 'c';
spowoduje błąd kompilacji.
Dodam, że jest możliwość pracy na prywatnych elementach klasy z zewnątrz za pomocą specjalnych funkcji, które nazywają się konstruktorem i destruktorem.
protected: dostęp do el. klasy mają tylko funkcję składowe i zaprzyjaźnione z klasą.
Mając taką klasę:
class My_type
{
protected:
int a;
char b;
void Zapis (int x, char y)
{
a = x;
b = y;
}
};
Wtedy funkcja Zapis może modyfikować wartość zmiennych a i b.
6. To zostało zrobione już na początku - rzeczone zmienne wewnątrz klasy to składowe klasy.
Np.
class My_type
{
protected:
int a;
char b;
void Zapis (int x, char y)
{
a = x;
b = y;
}
};
W tej klasie, składowymi są zmienne a,b oraz funkcją Zapisz().
W razie nie jasności pisz na Priva.
Pozdrawiam.