int a = 4;
int b = 2;
class second_class {
public:
int x = 5;
int y = 10;
}
void multiplication() {
cout « "a * x = " « a * x « ", b * y = " « b * y;
}
Здравствуйте. Я создал класс, вложил в него другой класс. Теперь я хочу перемножить значения переменных обеих классов. Но vs не дает мне сделать это таким образом. Что я делаю не так?
вложенный класс никакого отношения к внешнему классу не имеет. это вам не жава
Вложенный класс никак кроме вложенности не соотносится с охватывающим, и наоборот
Тогда я этот аргумент не совсем понял
объявление внутреннего класса имеет следующие преимущества: можно иметь доступ к приватным элементам класса при обращении к объекту, но никаких неявных связей между объектом обрамляющего класса и объектом внутреннего класса нет. считай, что обрамляющий класс - это namespace для внутреннего не более.
@anatolijs, поясните вот этот момент: > можно иметь доступ к приватным элементам класса при обращении к объекту Сделал пример, но получаю ошибку компиляции. Или я неправильно пример сделал?
Я неверно или коряво сформулировал, nested может иметь доступ к приватным полям enclosing
Ну да, ну да... Интересная особенность! Спасибо!
Обсуждают сегодня