我的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/

10-11 23:19
查看更多