我想知道是否有一种方法可以将类的对象放在 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 ),一旦您开始处理继承,它就会起作用。