c++内联函数使用和运算符重载的方法是什么

其他教程   发布日期:2023年06月24日   浏览次数:407

本篇内容主要讲解“c++内联函数使用和运算符重载的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“c++内联函数使用和运算符重载的方法是什么”吧!

一.内联函数

内联函数不走函数调用功能,相当于直接把函数执行的代码块复制过来了,类似于宏,但是功能一般来说比宏更强大注意

1.内联函数比常规函数要快,但是代价是占用更多内存(空间换时间)
2.类内定义的普通函数都是内联函数(注意是类内定义而不是类内声明)
3.内联函数一般把定义写在头文件中,而不是源文件

声明方式
很简单,在函数前面加上inline

二.运算符重载

  1. int a = 1;
  2. CStu st;
  3. st + a;

在没有运算符重载的情况下,上述运算会报错。但是有了运算符重载,上述运算就会有结果了。

1.使用形式

返回值+operator+运算符+(),()里面放参数,其中一个参数一定要是对象

  1. class CStu
  2. {
  3. public:
  4. int nAge;
  5. CStu()
  6. {
  7. nAge = 10;
  8. }
  9. };
  10. void operator+(CStu& st1, int b)
  11. {
  12. cout << st1.nAge + b << endl;
  13. }
  14. int main()
  15. {
  16. int a = 1;
  17. CStu st;
  18. st + a;
  19. system("pause");
  20. return 0;
  21. }

上面是没有返回值的,当然也可以有返回值,运算符重载返回值的作用就是:为了能够进行连续运算

  1. int operator+(CStu& st1, int b)
  2. {
  3. return st1.nAge + b;
  4. }
  5. int main()
  6. {
  7. int a = 1;
  8. CStu st;
  9. cout<<st + a + 1<<endl;
  10. system("pause");
  11. return 0;
  12. }

2.类外重载与类内重载

上面的例子都是类外重载,其中要注意:参数里面其中一个一定要是对象,而且运算符两侧分别就是左参数和右参数。
类内重载使用示例如下

  1. class CStu
  2. {
  3. public:
  4. int nAge;
  5. CStu()
  6. {
  7. nAge = 10;
  8. }
  9. void operator+(int b)//注意这里只能传一个参数,因为左参数默认是this指针,也就是相当于有对象做参数
  10. {
  11. cout << nAge + b << endl;
  12. }
  13. };
  14. int main()
  15. {
  16. int a = 1;
  17. CStu st;
  18. st + a;//形式一定是 对象+某个数据类型
  19. system("pause");
  20. return 0;
  21. }

注意:形式很死板,就是对象+某个数,不能倒过来。而且默认有左参数是this指针,也就是函数里面可以使用this。

  1. void operator+(int b)
  2. {
  3. cout << this->nAge + b << endl;
  4. }

以上就是c++内联函数使用和运算符重载的方法是什么的详细内容,更多关于c++内联函数使用和运算符重载的方法是什么的资料请关注九品源码其它相关文章!