我的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));
}
答案 0 :(得分:1)
当您使用存储类说明符static
定义函数时,您明确表示您希望此函数具有内部链接 - 这意味着它不应在定义它的转换单元外部可见。
因此,为了能够从其他翻译单元(Scene.cpp)调用您的函数,删除static
说明符,并将函数的声明添加到头文件中,该文件应包含在另一个文件中(Scene。 cpp)翻译单位。