2014-11-24 53 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 2014-11-24 03:43:29

+0

你有这里声明的静态*和*私有变量。你的私人(实例)变量的问题?或静态(a.k.a.类)变量... – 2014-11-24 03:51:10

+0

嗯,私人静态变量?除了这些变量是如何在定义它们的类之外访问的,在对象指针应该如何分配给它们方面会有什么不同吗? – SexyBeast 2014-11-24 03:53:57