zoukankan      html  css  js  c++  java
  • c++入门之——const在函数名前面和函数后面的区别

    1 class Test(){
    2 public:
    3     Test(){}
    4     const int foo(int a);
    5     const int foo(int a) const;
    6 };

    一、概念

    当const在函数名前面的时候修饰的是函数返回值,在函数名后面表示是常成员函数,该函数不能修改对象内的任何成员,只能发生读操作,不能发生写操作。

    二、原理:

    我们都知道在调用成员函数的时候编译器会将对象自身的地址作为隐藏参数传递给函数,在const成员函数中,既不能改变this所指向的对象,也不能改变this所保存的地址,this的类型是一个指向const类型对象的const指针。

    三、Overload时const的作用:

    继续使用上面的test类:

    1 int main(int argc, _TCHAR* argv[])
    2 {
    3     Test obj;
    4     const Test obj1;
    5     obj.foo(3);//使用非const函数
    6     obj1.foo(3);//使用const函数
    7 }

    在VS中如果对象不是const,则调用非const的函数。

    本文转载自:

    https://blog.csdn.net/lichen18848950451/article/details/64123104

  • 相关阅读:
    小记面向对象
    公司分层思想的演化历程
    我对uml类图关系的理解
    cms真实问题的来源以及模拟解决方案
    HTTP 协议基础
    Requests库
    接口测试概念
    Python中的strip()函数的用法
    Robot Framework环境搭建
    Python unittest excel数据驱动
  • 原文地址:https://www.cnblogs.com/shaonianpi/p/9906076.html
Copyright © 2011-2022 走看看