外部和内联的使用

Usage of extern & inline

在我的 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...
}

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

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