C++ C++;-用变量指针调用函数
我试图在另一个.cpp中外包一些功能,但如果我在另一个.cpp中更改C++ C++;-用变量指针调用函数,c++,function,pointers,C++,Function,Pointers,我试图在另一个.cpp中外包一些功能,但如果我在另一个.cpp中更改someObject,则必须在main.cpp中影响someObject。 这就是现在的结构。这不会影响相机 main.cpp someObject camera; setCamera(someObject camera); int main() { setCamera(camera); camera.doSomething(); } someObject tempCamera; void setCame
someObject
,则必须在main.cpp中影响someObject
。
这就是现在的结构。这不会影响相机
main.cpp
someObject camera;
setCamera(someObject camera);
int main()
{
setCamera(camera);
camera.doSomething();
}
someObject tempCamera;
void setCamera(someObject camera)
{
tempCamera = camera;
}
void anotherFunction()
{
tempCamera.doSomethingElse();
}
另一个.cpp
someObject camera;
setCamera(someObject camera);
int main()
{
setCamera(camera);
camera.doSomething();
}
someObject tempCamera;
void setCamera(someObject camera)
{
tempCamera = camera;
}
void anotherFunction()
{
tempCamera.doSomethingElse();
}
所以我想做的是让tempCamera
指向camera
但当我这样做的时候:
someObject *tempCamera;
void setCamera(someObject camera)
{
tempCamera = &camera;
}
anotherFunction()
{
tempCamera.doSomethingElse();
}
我得到一个错误,表达式必须具有类
类型。
我现在的问题是:如何从指针调用函数,或者我有什么选择 您正在与客户发生冲突。您可能希望引用相同的
someObject tempCamera这两个文件中的代码>都可以通过将除一个声明外的所有声明标记为extern
来实现
main.cpp
someObject camera;
setCamera(someObject camera);
int main()
{
setCamera(camera);
camera.doSomething();
}
另一个.cpp
extern someObject tempCamera;
void setCamera(someObject camera)
{
tempCamera = camera;
}
void anotherFunction(){
tempCamera.doSomethingElse();
}
第三.cpp
extern someObject tempCamera;
void yetFurtherFunction(){
tempCamera.doSomethingDifferent();
}
重复这个声明很快就会变得单调乏味,因此通常将extern
声明放在头文件中,即#将d包含在多个.cpp文件中(也称为翻译单位)啊,当然可以。谢谢你的帮助。我的头脑完全陷入了复杂的模式,忽略了简单的事情。