2014-11-24 5 views
0

У меня есть класс с именем MyClass объявлен следующим образом:C++ не может присвоить объекты, передаваемые в качестве указателя в методах переменной

#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 ошибки, указывающей на это назначение. Что я делаю неправильно, и как я могу это исправить? Это лучший способ передать объект и сохранить его в другой переменной класса, или есть лучший способ?

ответ

1

Вы должны объявить и инициализировать хранилище для статических объектов:

Object_Class *MyClass::object = nullptr; 

void MyClass::setObject_Class(Object_Class *var) { 
    object = var; 
} 
+0

Он работает. Есть ли лучший способ передачи объектов и хранения их в частных переменных? – SexyBeast

+0

У вас есть статическая * и * частная переменная, объявленная здесь. Ваш вопрос о частных переменных (экземплярах)? Или статические (a.k.a. class) переменные ... –

+0

Umm, частные статические переменные? За исключением того, как эти переменные могут быть доступны за пределами класса, в котором они определены, будет ли какая-либо разница в том, как назначить им указатель объекта? – SexyBeast

 Смежные вопросы

  • Нет связанных вопросов^_^