Почему в функциях класса можно обращаться к полям др класса, а в самом классе нельзя?
class a
{
public:
int b=0;
};
class c
{
public:
a d;
void print(a bb) {
cout << bb.b;// здесь к полю можно
}
d.b=10; // здесь к полю нельзя?
};
Почему в функциях класса можно обращаться к полям др класса, а в самом классе нельзя? В мейне тоже нормально все обращается, почему тогда в другом классе нельзя?
Ответы (1 шт):
Автор решения: Шкраб
→ Ссылка
Здесь проблема не в обращении к полю, а в том, что это грамматически неверная конструкция: в определении класса ожидается набор объявлений, а вы предоставляете assignment выражение. Если же обратиться к полю внутри объявления, то всё ок:
struct A {
int a;
};
struct B {
int b = (b, A{}.a);
};