在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等的更多准备工作,请参阅“完整面试准备课程” 。