我的main.cpp文件中有一个名为initializeObjects()的方法,我想从另一个名为Scene.cpp的源文件中的方法调用它。我怎么做?
这是我的main.cpp文件,没有标题:
static void initializeObjects();
int main() {
Scene myScene;
myScene.render(640,480);
return 0;
}
void initializeObjects(){
//Add a plane of gray color
Scene::shapes.push_back(std::make_shared<Plane>(Vector3D(0,1,1), Vector3D(0,0,80), COLOR_GRAY));
//Add two spheres
Scene::shapes.push_back(std::make_shared<Sphere>(100.0, Vector3D(0,50,0), COLOR_WHITE));
Scene::shapes.push_back(std::make_shared<Sphere>(60.0,ORIGIN, COLOR_RED));
}
最佳答案
当使用存储类说明符static
定义函数时,您明确表示要此函数具有内部链接-这意味着在定义该函数的翻译单元之外,该函数不应该可见。
为了能够从其他转换单元(Scene.cpp)调用函数,请删除static
说明符,并将函数的声明添加到头文件中,该文件应包含在其他(Scene.cpp)转换单元中。
关于c++ - 如何从另一个源文件调用main.cpp中的静态函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36239350/