gpt4 book ai didi

c++ - 如果我在实现 (.cpp) 文件中定义一个函数而不在头文件中定义它会发生什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:55 25 4
gpt4 key购买 nike

我是 C++ 菜鸟。我有一个定义函数的 foo.cpp 文件,

void sort() {
// details of sort algorithm
}

我没有在相应的头文件中定义这个,但是我没有编译错误。我注意到这是一种静态方法。是这样吗?我到底在这里做了什么?

编辑:

我注意到在这个方法中我不能使用它,(例如:this->bar),因此我假设这是一个静态函数。当我想要一个“私有(private)”方法但忘记在头文件中声明它时,这实际上发生了。是否有实际使用这样的功能?

最佳答案

它在该编译单元之外不是不可见的,它不绑定(bind)到单个编译单元,它只是一个需要声明才能调用的定义。与任何其他定义一样。

wtf.cpp:

#include <iostream>
void f(){ std::cout<< "f();"; }

omg.cpp:

void f(); // I can declare wherever I use it.
int main(){ f(); }

$ g++ wtf.cpp omg.cpp && ./a.out

输出:f();

关于c++ - 如果我在实现 (.cpp) 文件中定义一个函数而不在头文件中定义它会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16605038/

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