头文件的包含

inclusion of header files

本文关键字:包含 文件      更新时间:2023-10-16

我有一个名为functions.h....的文件现在我知道在头文件中定义函数是不明智的,但与突然出现的问题相比,这是我最不关心的…

我在functions.h中定义了一个名为

的函数
 void sayhi()
{
  cout<<"hi";
}

现在我创建了一个lines.h文件,它的函数在lines.cpp文件中定义…在lines.cpp文件中,我包含了functions.h…并使用sayhi();在lines类的构造函数中…然后在mymain.cpp(包含int main)中,我再次包含functions.h,并在main中调用sayhi();

但是当我编译程序时,它在mymain.cpp中显示了一个错误,告诉我sayhi()已经在lines.obj中定义了…你能指出我做错了什么吗?

解决方案是在functions.h中声明函数,然后在functions.cpp中定义,按照自然的方式。

使函数inline避免了这种多重定义问题。

,

inline void sayhi()
{
  cout<<"hi";
}

这个链接可能对你有帮助。

特别地,它引用了ISO c++标准的7.1.2节:

内联函数应在每个翻译单元中定义在任何情况下都应使用并具有完全相同的定义(3.2) .

相关文章: