/*
struct Cls {
Cls(char c, double d, int i);
private:
char c;
double d;
int i;
};
Как видно, все поля этого класса закрытые, ваша задача реализовать несколько функций, которые дают полный доступ к этим полям (см. шаблон кода), несмотря на то, что они закрытые.
*/
struct FakeCls {
FakeCls(char c, double d, int i) {
this->c = c;
this->d = d;
this->i = i;
}
public:
char c;
double d;
int i;
};
// Эта функция должна предоставить доступ к полю c объекта cls.
// Обратите внимание, что возвращается ссылка на char, т. е.
// доступ предоставляется на чтение и запись.
char &get_c(Cls &cls) {
FakeCls* fakeCls = reinterpret_cast<FakeCls*>(&cls);
return fakeCls->c;
}
// Эта функция должна предоставить доступ к полю d объекта cls.
// Обратите внимание, что возвращается ссылка на double, т. е.
// доступ предоставляется на чтение и запись.
double &get_d(Cls &cls) {
FakeCls* fakeCls = reinterpret_cast<FakeCls*>(&cls);
return fakeCls->d;
}
// Эта функция должна предоставить доступ к полю i объекта cls.
// Обратите внимание, что возвращается ссылка на int, т. е.
// доступ предоставляется на чтение и запись.
int &get_i(Cls &cls) {
FakeCls* fakeCls = reinterpret_cast<FakeCls*>(&cls);
return fakeCls->i;
}
Comments
0 B
|👍
/👎