1.Instrukcje wyjścia wejcia w C++
2.Procedury i funkcje w C++
KLASY
3.Mechanizm dziedziczenia
4.Konstruktory i dekonstruktory
5.Przeciążenie operatorów i funkcji
6.tryby dostępu do pól i metod klas
Do wszystkich pytań przukłady zastosowania
Proszę o kompetentno osobę do odpowiedzenia na te pytania. Proszę udzielić na wszystkie pytania odpowiedzi. Jak ktoś nie zna odpowiedzi niech się za to nie zabiera
dziekuję
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2025 KUDO.TIPS - All rights reserved.
Pytan nie widze ;/ Nie ma tez czegos takiego jak tryby dostepu.
1) poniewaz C++ zachowuje wsteczna kompatybilnosc, wiec wiekszosc funkcji z biblioteki standardowej C takze implementuje to odpowiedzia moze byc
#include <cstdio>
int main()
{
int a;
printf("podaj liczbe: "); - instrukcja wyjscia
scanf("%d", &a); - wejscia
printf("podales liczbe %d\n", a); - wyjscia
}
w C++ natomiast zwyklo sie uzywac do operacji I/O strumieni z biblioteki standardowej z przestrzeni nazw std
#include <iostream>
using std::cout; // wyjscie
using std::cin; // wejscie
int main()
{
int a;
cout << "podaj liczbe: "
cin >> a;
cout << "podales liczbe " << a << std::endl;
}
2) funkcje w jezykach programowania jak najbardziej mozesz utozsamiac z funkcja matematycznymi, czyli z pewnym odwzorowaniem podanych argumentow, deklaracja funkcji wyglada tak
typ nazwa(parametry) {
// operacje na parametrach, czy jakies inne
return wartosc_zwracana; // chyba, ze typ == void to nic nie zwracasz
}
przyklad funkcji obliczajacej silnie liczby n metoda rekurencji
int silnia(int n)
{
if(n < 2)
return 1;
else
return silnia(n-1)*n;
}
3) dziedziczenie inaczej zwane genralizacja opisuje w programowaniu zwiazek "jest czyms", np kot jest zwierzeciem
#include <iostream>
using namespace std;
class zwierze
{
public:
zwierze() { cout << "zwierze\n"; }
};
class kot : public zwierze // kot dziedziczy po zwierze
{
public:
kot() { cout << "kot\n"; }
};
4) wyzej zdefiniowalam 2 konstruktory publiczne, wywolywane w momencie utworzenia obiektu danej klasy, destruktory sa metodami wywolywanymi w momencie gdy zmienna obiektowa bedaca na stosie straci zakres, albo gdy mamy do czynienia z obiektem na stercie, destruktor jest wywolywany gdy pamiec zajmowana przez ten obiekt zostanie zwolniona instrukcja delete lub free
przyklad destruktora
class kot : public zwierze
{
... // to co wyzej bylo
~kot() { cout << "destruktor\n"; }
};
6) tak jak mowilam nie tryby, a modyfikatory dostepu - w C++ sa takie:
public - skladowa klasy jest dostepna z kazdego miejsca, w ktorym obiekt danej klasy jest dostepny
private - skladowe oznaczone tym modyfikatorem sa dostepne tylko w obrebie obiektu danej klasy, czyli nikt z zewnatrz nie ma do nich dostepu oraz nie sa dziedziczone
protected - tym sie rozni od private, ze skladowe sa dziedziczone, ale tez dostep do nich tylko w obrebie danego obiektu
to samo tyczy sie metod, czyli jesli sa protected private to nie mozna ich wywolywac na zewnatrz obiektu, a jesli sa public to je mozna wywolywac oraz public i protected sa dziedziczone, a private nie sa dziedziczone
5) przeciazanie operatorow umozliwia nam tworzenie wlasnych typow(obiektow), na ktorych operacje bedziemy mogli wykonywac tak jak na zwyklych liczbach, dzieki wlasnie przeciazeniu operatorow ;>
przyklad przeciazania operatorow jednoargumentowych
class Complex
{
private: // skladowe prywatne
int x;
public: // skladowe publiczne
Complex(int);
void operator=(Complex&);
// akcesor
int __get_x() {
return x;
}
// mutator
void __set_x(int x) {
this->x = x;
}
};
Complex::Complex(int x)
{
this->x = x;
}
void Complex::operator=(Complex &c)
{
this->x = c.__get_x();
}
int main()
{
// tworze obiekty automatycznie sa wywolywane konstruktory
Complex *test = new Complex(2);
Complex *test2 = new Complex(4);
// nie zrobisz tak bez przeciazana
test = test2;
// zwalnia pamiec, wywolywane sa destruktory
delete test;
delete test2;
}
btw. zadanie jest przynajmniej za 100zl, a nie ~50pkt, wiec uruchom przyklady i sam sprawdz jak to wyglada, jesli sa jakies niejasnosci(ewentualnie dopytaj na privie)