C ++中有没有办法让编译器首先从类中实例化一个对象,这样我就可以在另一个类中使用它了。或者处理这个问题的优雅方式是什么?
例如:
class A
{
int x;
A()
{
//x is being read from a file
}
void printX();
};
B.h
class B
{
void somefunction()
{
objectA.printX();
}
}
main.cpp
main()
{
A objectA;
...
B objB;
objB.somefunction();
}
{{1}}
答案 0 :(得分:2)
您只需要向对象B传递对您尝试使用的对象的引用,例如......
注意:当您将对象作为不仅仅是POD的函数参数传递时,如果您不修改它们,最好通过常量引用传递它们(这样您就不会复制它们整个对象,可能很大,你只需传递一个指针)。但是在这种情况下,因为它现在是一个const引用,所以你只能调用const函数,这就是我创建printX const的原因。据推测printX不是修改A,所以它应该是const。
A.h
class A
{
int x;
A()
{
//x is being read from a file
}
void printX() const;
};
B.h
class B
{
void somefunction(const A& objectA)
{
objectA.printX();
}
}
main.cpp
main()
{
A objectA;
...
B objB;
objB.somefunction(objectA);
}