如何从另一个源文件中调用main.cpp中的静态函数?

时间:2016-03-26 18:45:32

标签: c++ c++11

我的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));
}

1 个答案:

答案 0 :(得分:1)

当您使用存储类说明符static定义函数时,您明确表示您希望此函数具有内部链接 - 这意味着它不应在定义它的转换单元外部可见。

因此,为了能够从其他翻译单元(Scene.cpp)调用您的函数,删除static说明符,并将函数的声明添加到头文件中,该文件应包含在另一个文件中(Scene。 cpp)翻译单位。

相关问题