Prywatne dane w klasie

0

Witam, chciałbym się dowiedzieć jak można się dostać się do prywatnych danych zadeklarowanych w klasie?

0

metodami tejże klasy, albo poprzez zaprzyjaźnienie :)

0

A można by prosić przykład jakiś?

0

funkcje skladowe

2

POdstawy klas, proponuję jakąś książk/kurs, rozdział o klasach i tam znajdziesz rozwiazanie.

0

http://ideone.com/ZPuZS

#include <iostream>
using namespace std;
 
class Person
{
private:
int wiek;
string imie,nazwisko;
 
public:
void wypiszDane(int wiek, string imie, string nazwisko)
 {
wiek = wiek;
imie = imie;
nazwisko = nazwisko;
cout << "Osoba nazywa sie: " << imie << " " << nazwisko << " oraz ma " << wiek << " lat.";
 }
};
 
int main()
{
Person p;
p.wypiszDane(36,"Mystogan","Mystoganowski");
}

To wersja poprawiona :P. Powaliło mi się z C# wcześniej. Modyfikuję dane prywatne przy pomocy funkcji składowej.

Jeżeli chcesz prywatne dane modyfikować poza klasą to musisz skorzystać z zaprzyjaźnionych funkcji (IMO to bez sensu skoro je robisz prywatne to tak jak rzutować const_cast, żeby usunać stałą.. to po co robisz ją stałą?) lub zrobić te dane publiczne - wtedy nie ma problemu. Możesz też zrobić je chronione i modyfikować w klasie pochodnej przy pomocy tzw. dziedziczenia.
Uwaga a teraz zadanie dla Ciebie: napisz funkcję składową, która zamieni imie z nazwiskiem i na odwrót.

0

public:

void poprawa()
{
imie.swap(nazwisko), o to chodziło?
}

0
Mystogan napisał(a):

Jeżeli chcesz prywatne dane modyfikować poza klasą to musisz skorzystać z zaprzyjaźnionych funkcji (IMO to bez sensu skoro je robisz prywatne to tak jak rzutować const_cast, żeby usunać stałą.. to po co robisz ją stałą?) lub zrobić te dane publiczne - wtedy nie ma problemu. Możesz też zrobić je chronione i modyfikować w klasie pochodnej przy pomocy tzw. dziedziczenia.

A z Katowic do Częstochowy jedzie się przez Białystok.
Jeżeli zrobi dane publiczne to nie ma hermetyzacji. Stosowanie dziedziczenia tylko po to, żeby dostać się do pól w klasie nadrzędnej? Przecież to totalnie bez sensu.

@michcio19923 - gettery i settery oraz podstawy obiektowości.

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