gpt4 book ai didi

c++ - 在 C++ 中没有实现,但仍然可以调用它

转载 作者:可可西里 更新时间:2023-11-01 16:52:30 24 4
gpt4 key购买 nike

我有一个Simpletron.cpp,它是一个文件,一个Simpletron.h,它声明了一个Simpletron类:

class Simpletron 
{
public:
Simpletron();
};

我在我的 main.cpp 中调用了 Simpletron():

#include <iostream>
#include "Simpletron.h"

int main(int argc, char *argv[])
{

Simpletron s();
std::cin.get();
}

主函数运行平稳,没有任何警告或错误。这是为什么?如果没有头文件可以链接到的实现,那怎么编译呢?

最佳答案

这一行:

Simpletron s();

是一个函数原型(prototype),声明一个名为 s 的函数,返回一个 Simpletron 并且不接受任何参数。它不会创建名为 sSimpletron 实例。

现在您可能会问,为什么链接器不提示不存在的 s() 函数呢?好吧,由于您只是声明了 s() 但从未实际调用它,因此在链接过程中实际上并没有在任何地方引用它,因此您不会收到链接错误。

关于c++ - 在 C++ 中没有实现,但仍然可以调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18971101/

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