我想知道是否有一种方法可以将类的对象放在 header 中?

例如:

class MyClass {

} object;

如果在此创建了一个对象,然后将 header 包含在多个源文件中,则会出现错误,发现找到的已定义符号倍增。我是新手,所以不能完全理解所有内容。

另外,我想在另一个函数(该函数是另一个类的成员)中执行类似object.function()的操作,该怎么做?

最佳答案

假设您要一个对象,只需在头文件中声明该对象:

extern blabla object;

然后在中定义一个源文件:
blabla object;

至于从不同类的对象上调用方法,只要该方法是公共(public)的就可以了。
class foo
{
public:
    void public_method();

private:
    void private_method();
};


void some_other_class::method(foo &f)
{
    f.public_method();  // this is fine

    f.private_method(); // this is not okay, private_method can only be called from
                        // within foo
}

还有第三种可见性( protected ),一旦您开始处理继承,它就会起作用。

07-24 09:46
查看更多