const char * classname :: getname()const?什么是第一个const关键字的含义?

时间:2017-03-26 14:15:15

标签: c++ c++11

我知道第二个常量关键字告诉函数是常量

class Person{  
char *name;     
int age;  

public:  
const char* GetName() const;  
int GetAge() const;  

}; 

4 个答案:

答案 0 :(得分:3)

指定函数返回的指针的指针指向const char

答案 1 :(得分:2)

const char* GetName() const;

上述语句中const关键字的第一次出现在函数GetName()的返回值的数据类型中,它也是一个常量函数。

这意味着GetName()返回的值为:

  • 类型char
  • 指针
  • const

由于返回值为constGetName()将收到指向常量char值的指针。所以如果你有:

Person object;
const char* point = object.GetName();

*point将指向常量char值。

答案 2 :(得分:1)

这意味着该函数返回指向常量char的指针。以下将是在C ++中使用const关键字的良好读取。

http://www.cprogramming.com/tutorial/const_correctness.html

答案 3 :(得分:1)

如上所述,它表示const指针。它只适用于const指针。

const char * p = GetName();  //Compiled successfully
char * p = getName(); //compilation error... however you can remove using const_cast)

const char*反映char*是不变的。因此,以下行将给出错误: -

*p = 'c';

然而P在这里不恒定。所以你可以这样写: -

char ch;
p = &ch;

通常当函数返回值时,我们关注值(就像它不应该被修改)。我希望它会有所帮助。