类的作用域
在C++中,每个类定义了自己的作用域和唯一的类型。这意味着在类内部声明的成员(函数和变量)都被引入了这个类的作用域。一个类的作用域可以分为三个主要部分:
-
类定义体: 包含类的成员声明和定义的地方。
-
类外成员函数的形参表: 类外定义的成员函数的参数列表仍处于类作用域中。
-
类外成员函数的函数体: 成员函数的实现,也在类的作用域内,但其返回类型不在类作用域中。
如下 Clock类 HOUR GetHour() const;
编译错误,因成员函数的返回类型不在类作用域中
class Clock { |
this指针
每个非静态成员函数都有一个隐含的参数 this
指针,它指向调用该成员函数的对象。这使得成员函数可以访问该对象的私有数据和成员函数。
void Clock::SetTime(int newHour, int newMinute) { |
this
指针指向当前 Clock
对象,因此 this->m_Hour
和 this->m_Minute
访问的是当前对象的成员。
链式编程
利用 this
指针可以实现链式编程。成员函数可以返回 this
指针,从而允许在一个对象上连续调用多个成员函数。
Clock* Clock::SetTime(int newHour, int newMinute) { |
SetTime
返回 this
指针,使得可以在一个调用链中继续调用 ShowTime
。