История изменений
Исправление Freyr69, (текущая версия) :
``в с++ нет инкапсуляции" (уверен, так можно сделать даже в жабе)
#include <iostream>
class Test
{
private:
int x;
int y;
public:
Test(int x, int y) { this->x = x; this->y = y; }
~Test() {}
int get_x() const { return this->x; }
int get_y() const { return this->y; }
};
int
main(int argc, char *argv[])
{
Test test (1,2);
std::cout << test.get_x() << std::endl;
*(reinterpret_cast<int*>(&test)) = 12;
std::cout << test.get_x() << std::endl;
return 0;
}
opaque structures — вполне себе инкапсуляция. Инкапсуляция, она скорее про отношение к данным, а не про механихм доступа к ним. Если абстрагируешься от полей — вполне себе инкапсуляция. Но это все, конечно, беспредметный спор о понятиях без конкретных определений.
Исходная версия Freyr69, :
``в с++ нет инкапсуляции" (уверен, так можно сделать даже в жабе)
#include <iostream>
class Test
{
private:
int x;
int y;
public:
Test(int x, int y) { this->x = x; this->y = y; }
~Test() {}
int get_x() const { return this->x; }
int get_y() const { return this->y; }
};
int
main(int argc, char *argv[])
{
Test test (1,2);
std::cout << test.get_x() << std::endl;
*(reinterpret_cast<int*>(&test)) = 12;
std::cout << test.get_x() << std::endl;
return 0;
}
opaque structures — вполне себе инкапсуляция.