B>можно ли как-нибудь сделать такое без написания лишнего кода:
Мона
#include <iostream>
struct B {
void f() {
std::cout<<"Будь смел, как лев. Никем и никаким"<<std::endl;
std::cout<<"Врагом и бунтом ты не победим."<<std::endl;
}
void g() {
std::cout<<"Пока не двинулся на перерез"<<std::endl;
std::cout<<"На Дунсенанский холм Биранмскй лес."<<std::endl;
}
};
struct A {
B b;
B *operator->() {
return &b;
}
};
int main() {
A a;
a->f();
a->g();
return 0;
}
P.S. А еще лучше возьми кнжку и почитай, C++ -- не то язык, на котором можно программировать без серьезного и планомерного ищучения оного.
P.P.S. Перевод Пастернака цитирую по памяти
Здравствуйте, betauser, Вы писали:
B>много написал... но! B>Вообще-то, как звучит из названия темы, мне нужно вызвать через ".", а не через "->".
Опять же, в книжке можно почерпнуть знания о том, что
А. в C++ возможна перегрузка операторов...
Б. ...но не всех
и как раз таки "точку" перегрузить низзя.
HgLab: Mercurial Server and Repository Management for Windows
Здравствуйте, betauser, Вы писали:
B>можно ли как-нибудь сделать такое без написания лишнего кода
А как сделать такое с написанием лишнего кода?
Хотелось бы посмотреть, чтобы иметь представление о том, что является лишним.
Ведь возможно ответ, который я хочу дать, использует лишний код.
B>>можно ли как-нибудь сделать такое без написания лишнего кода: sch>Мона
sch>
sch> std::cout<<"Будь смел, как лев. Никем и никаким"<<std::endl;
sch> std::cout<<"Врагом и бунтом ты не победим."<<std::endl;
sch> std::cout<<"Пока не двинулся на перерез"<<std::endl;
sch> std::cout<<"На Дунсенанский холм Биранмскй лес."<<std::endl;
sch>
sch>P.P.S. Перевод Пастернака цитирую по памяти
Кракозябры в консоли
Правильно работающая программа — просто частный случай Undefined Behavior