use*_*501 1 c++ inline class member-functions
我在课堂上有一些成员函数.当我使用内联说明符时,编译器会抱怨未定义的引用.
我试过了:
使用'inline'仅在类头文件中的函数定义之前.
使用'inline'在类.cpp(指定成员函数)的函数声明之前,仅使用文件.
同时执行上述两个操作.
显然,其中一种方法是正确的做法,而其他方法则不正确.然而,尝试每个选项并没有让我得到一个编译的程序.
这是我想要做的:
.hpp文件:
class A{
void func();
}
Run Code Online (Sandbox Code Playgroud)
.cpp文件:
......包括......
inline void A::func()
{
...
}
Run Code Online (Sandbox Code Playgroud)
或者也许'内联'去其他地方.我已经尝试了所有可能的组合,正如我上面所解释的那样.(现在看一个人告诉我,我需要它在函数名和参数之后,比如关键字'const'.)
任何有关我做错的想法?我试着用谷歌搜索正确的答案,但没有运气."内联"函数是否在一个类中甚至是一个东西?
必须在头文件中定义内联函数.函数的定义(正文)必须在尝试使用该函数的所有翻译单元中可见.您可以直接在类中定义它.或者您可以在代码中定义它,即在类之外.但它必须在头文件中,而不是在.cpp文件中.
尝试在.cpp文件中定义内联函数将使其.cpp仅在该文件中可用.尝试在其他.cpp文件中使用它会导致链接器错误(即"未定义的引用"错误).