У меня есть класс с именем MyClass
заявлено следующим образом:
#pragma once
class Object_Class;
class MyClass
{
static Object_Class *object;
public:
static void setObject_Class(Object_Class *var);
};
object
является частной статической переменной, которая указывает на объект класса Object_Class
, В файле реализации я пытаюсь сделать это:
void MyClass::setObject_Class(Object_Class *var) {
object = var;
}
Тем не менее, я получаю символ не найден для архитектуры i386 ошибка, указывающая на это назначение. Что я делаю не так, и как мне это исправить? Это лучший способ передать объект и сохранить его в другой переменной класса, или есть лучший способ?
Вам необходимо объявить и инициализировать хранилище для статических объектов:
Object_Class *MyClass::object = nullptr;
void MyClass::setObject_Class(Object_Class *var) {
object = var;
}