Почему во внешнем классе нельзя создать объект внутреннего класса?

Рейтинг: 1Ответов: 1Опубликовано: 13.02.2023

Почему во внешнем классе нельзя создать объект внутреннего класса?

class d {
public:
    int data = 90;
    static const int n = 9;

    class t {
        friend class d;
        int yy = 0;
    public:
        int y;
        t(int b) :y(b) {};
        const int v = d::n;//тк статик не через объект
    };
    t nn(3);//ошибка?

Ответы

▲ 1Принят

Проблема в круглых скобках. Внутри класса компилятор всегда принимает их за список параметров функции. Используйте одно из:

  • t nn = 3;
  • t nn{3};
  • t nn = t(3);
  • ...