gpt4 book ai didi

c++ - "only one implementation"规则的异常(exception)?

转载 作者:可可西里 更新时间:2023-11-01 15:39:21 25 4
gpt4 key购买 nike

当我阅读 this question 的已接受答案时,我有以下问题:

通常,方法在头文件(.hpp 或其他)中定义,并在源文件(.cpp 或其他)中实现。

包含“源文件”( #include <source_file.cpp> ) 是不好的做法的主要原因之一是它的方法实现会被复制,从而导致链接错误。

当一个人写的时候:

#ifndef BRITNEYSPEARS_HPP
#define BRITNEYSPEARS_HPP

class BritneySpears
{
public:

BritneySpears() {}; // Here the constructor has implementation.
};

#endif /* BRITNEYSPEARS_HPP */

他给出了构造函数的实现(这里是一个“空”实现,但仍然是)。

但是为什么多次包含此头文件(也就是在不同的源文件中)将不会在链接时生成“重复定义”错误?

最佳答案

内联函数是“单一定义规则”的异常(exception)情况:您可以在多个编译单元中使用相同的实现。如果函数被声明为 inline 或在类定义中实现,则它们是内联的。

关于c++ - "only one implementation"规则的异常(exception)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3060911/

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