当前位置:   article > 正文

C++中inline注意事项_inline使用注意事项 c++

inline使用注意事项 c++

inline 函数的实现体可以在 .h 文件中也可以在 .cpp 文件中。下面阐述两种实现方式的区别。

第一种情况,实现体在 .h 文件中。这种情况下的 inline 函数所在头文件可被多次包含,不会产生重复定义的错误。若定义的 inline 函数(public 函数)会在多个 .cpp 文件中调用,应该使用该方式实现 inline 函数。这种情况有以下两种效果相同的实现方式,略去 .cpp 文件中内容。

① 定义体和实现体合并在一起

// Test.h

Class Test

{

public:

Test();

~Test();

void operation()

{

// 实现 operation 函数

......

}

}

② 定义体和实现体分离开

// Test.h

Class Test

{

public:

Test();

~Test();

void operation();

}


inline void Test::operation()

{

// 实现 operation 函数

......

}

第二种情况,将inline 函数的实现体放在 .cpp 文件中。这种情况下所定义的 inline 函数只能在其实现体所在 .cpp 文件中使用,不能在其他 .cpp 文件中调用(会报链接错误),非 public 的 inline 函数可采用此方式实现,public 类型 inline 函数不推荐使用该方式实现。

// Test.h

Class Test

{

public:

Test();

~Test();

void operation();

}


// Test.cpp

Test::Test()

{ // 实现构造函数

}


Test::~Test()

{ // 实现析构函数

}


inline void Test::operation()

{

// 实现 operation 函数

......

}

注:定义体和实现体合并在一起时编译器会自动将函数 inline 化,定义体和实现体分离时,需在实现体前加关键字 inline(在定义体前加不起作用)。inline 只是对编译器“提建议”,编译器会忽略某些函数(如很长的函数和带循环的函数等)的 inline 请求。一般情况下不需要使用 inline 函数,进行性能优化时可将使用频繁而函数体又小的函数 inline 化。

编写匆忙,有错误的地方请指正,谢谢!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/626929
推荐阅读
相关标签
  

闽ICP备14008679号