C++ - 使用变量指针调用函数
C++ - call function with variable pointer
我试图在另一个函数中外包一些函数.cpp但是如果我在另一个.cpp中更改someObject
,它必须在main.cpp中影响someObject
。 所以这基本上是现在的结构。这不会影响camera
.
主.cpp
someObject camera;
setCamera(someObject camera);
int main()
{
setCamera(camera);
camera.doSomething();
}
另一个.cpp
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();
}
我收到一个错误,即表达式必须具有class
类型。 我现在的问题是:如何从指针调用函数或我有什么替代方案?
您违反了一个定义规则。您可能希望在两个文件中引用相同的someObject tempCamera;
,这可以通过将除一个声明之外的所有声明标记为extern
来实现。
主.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
声明放在多个.cpp文件中#include
d 的头文件中(也称为翻译单元)
相关文章:
- 为什么使用 "this" 指针调用派生成员函数?
- 当使用通配符和null指针调用函数时,对输出的说明
- Visual c ++,使用字符串引用/指针调用 dll 函数
- 使用基类指针调用基类的值构造函数的语法是什么?
- 是否可以使用函数指针调用虚拟析构函数?
- 使用C++指针调用 python 函数
- 如何使用接口指针调用方法,该指针是其具体类的一部分,而不是接口的一部分
- 是否可以使用非常量指针调用非常量函数,以及当两个unique_ptrs指向同一个对象时程序的行为方式?
- 在将派生类指针类型转换为派生类指针后,从基类指针调用派生类函数
- 通过指针调用模板类成员函数 [为什么这是有效的 c++]?
- 从带有参数的基函数指针调用基方法
- 使用唯一指针调用函数会使我的程序崩溃
- C++::在构造函数退出之前通过指针调用成员函数
- 有没有办法在没有虚拟的情况下使用基类指针调用派生类函数
- 什么时候用指针调用C++类构造函数
- C++ - 使用变量指针调用函数
- 为什么我可以通过野生指针调用成员函数
- 从指针调用方法时出现分段错误
- 为什么使用指向函数的指针调用虚函数时不需要指针"this"?
- C++ abort() 在函数内的抽象类对象指针调用上