gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 05:45:49 24 4
gpt4 key购买 nike

我的 main.cpp 文件中有一个名为 initializeObjects() 的方法,我想从另一个名为 Scene.cpp 的源文件中的方法调用它.我怎么做?这是我的 main.cpp 文件,没有 header :

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com