C++类的内联成员函数应放在哪
作者:网络转载 发布时间:[ 2013/3/15 10:53:26 ] 推荐标签:
复习C++ Primer的时候,看到了关于C++类的内联成员函数的放置,应该放在头文件中。那么这到底是为什么呢?仅仅是一种代码规范问题还是必须这样做呢?
下面我来讲讲我自己的理解吧。要彻底理解这个问题,首先要了解下函数的声明和定义了。我们知道,函数可以在多处声明,但只能在一个地方定义,不然会出现重定义。大部分函数默认是外部链接,而inline函数默认为内部链接。也是说inline函数只能在本文件中使用,对其他文件是不可见的。一般我们使用某个类的时候,都是在文件中加上该类的头文件,以便我们可以使用该类的接口。而我们类的成员函数的实现都是放在相应的.cpp文件中的,而在.h文件中声明。这样我们便可以通过.h文件中的成员函数的声明找到其定义,继而使用成员函数了。但如果将inline函数放在.cpp文件中,那么其只对.cpp文件有效,这样我们无法访问它了。所以我们将其放在类的声明的头文件中,这样通过包含该头文件来使用它。
下面写个实际的例子来说明一下,我先把内联函数放到类声明的头文件中:
/*test.h*/
#ifndef TEST_H
#define TEST_H
#include <iostream>
using std::cout;
using std::endl;
class test
{
public:
test():x(10){}
inline void print();
void display (int y);
private:
int x;
};
void test::print()
{
cout << x << endl;
}
#endif
/*test.cpp*/
#include <iostream>
#include "test.h"
using std::cout;
using std::endl;
void test::display(int y)
{
cout << x * y << endl;
}
/*main.cpp*/
#include <iostream>
#include "test.h"
using namespace std;
int main()
{
test T;
T.display(10);
T.print();
system("pause");
return 0;
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11