0

Инициализатор члена не указывает на нестатический член данных или базовый класс

9

Проблема с инициализацией защищенных членов родительского класса в C++

Я столкнулся с проблемой, когда пытаюсь инициализировать защищенный член родительского класса в списке инициализации конструктора производного класса, и не могу найти решение через Google.

Привожу следующий код для иллюстрации:

struct a {
    float m_x;
    float m_z; // Этот член не имеет спецификатора доступа и является приватным для структуры
public:
    a(float x): m_x(x) {}
};

class b : public a {
    b(float z): m_z(z) {} // Попытка инициализации m_z
};

Перед компиляцией на clang 3.2 я получаю следующую ошибку:

error: member initializer 'm_z' does not name a non-static data member or base class
    b(float z): m_z(z) {}

Как я могу правильно инициализировать m_z, чтобы избежать данной ошибки?

0 ответ(ов)

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь