Доступ к унаследованной статической закрытой переменной
Вот случай: у класса Parent есть статическое поле num_, есть статические сеттер и геттер для него. От него наследуется класс Child. Затем я создаю два объекта класса child и инициализирую поле num_ через сеттер, указывая пространство имен Child::, затем вывожу значение num_ через геттер второго. Но компоновщик выдает ошибку - неразрешенный внешний символ "private: static int Parent::num_" (?num_@Parent@@0HA).
class Parent
{
public:
static void set_num(int num)
{
num_ = num;
}
static int get_num()
{
return num_;
}
private:
static int num_;
};
class Child : public Parent
{
};
void main()
{
Child child1, child2;
Child::set_num(1);
std::cout << "num is " << child2.get_num() << std::endl;
}