使用extern&排队

时间:2016-11-02 19:36:32

标签: c++ extern

在我的C ++代码中,我有这样的定义;

class A {
    int i;
public:
    void setI(int temp) {
        i = temp;
    }
};

extern A* a;

之后我有一个函数用一些从参数中获得的流来填充a的变量。

inline void Func() {
    ... // Stream definition with ifstream etc.
    int k;
    stream >> k;
    a->setI(k);    // Gives segmentation fault...
}

可能是什么原因? 提前谢谢......

1 个答案:

答案 0 :(得分:2)

在初始化代码中的某处使用a = new A()。更好的方法是使用参数调用Func(A *a)而不是使用" extern"言。