📜  C++中“ this”指针的类型

📅  最后修改于: 2021-05-30 06:31:21             🧑  作者: Mango

在C++中,指针作为隐藏参数传递给所有非静态成员函数调用。该类型的这种依赖于函数声明。如果一个类X的成员函数被声明常量,在类型是常量X *(见下文码1),如果该成员函数被声明挥发,这种类型是挥发性X *(见下文码2),并且如果该成员函数被声明const的挥发这种类型是常量挥发性X *(见下面的代码3)。

代码1

#include
class X {
   void fun() const {
  
    // this is passed as hidden argument to fun().
    // Type of this is const X* const
    }
};

代码2

#include
class X {
   void fun() volatile {
  
     // this is passed as hidden argument to fun().
     // Type of this is volatile X* const
    }
};

代码3

#include
class X {
   void fun() const volatile {
  
     // this is passed as hidden argument to fun().
     // Type of this is const volatile X* const
    }
};

参考:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”