范围解析运算符之前的类名中的指针

时间:2017-02-26 11:59:10

标签: c++ pointers

我正在从c转到c ++,并且在这里遇到了scoperesolution页面信息,非常有帮助 What does "ClassName ClassName::FunctionName" mean in C++?

但是我也遇到了以下代码,我打算学习它并且它在类名前面有一个指针,所以我的问题是在什么情况下会使用指针。

const char *TObject::ClassName() const
{
   // Returns name of class to which the object belongs.
   return IsA()->GetName();
}

1 个答案:

答案 0 :(得分:2)

这是其类之外的成员函数的常规定义。在这种情况下,星号没有特殊含义。

首先,回想一下如何在C中定义一个返回指针的函数:

const char *Foo() {
   return something;
}

您看到的声明具有相同的结构,但两个元素除外:

  • 该函数的全名使用范围解析运算符和
  • 功能后有一个const

范围分辨率意味着ClassName是属于类TObject的成员函数,而末尾的const意味着成员函数的代码不会改变其类的成员变量。