常成员函数只能对常量进行操作,即它不改变函数成员的值。 因此它返回的数值也是一个常量,返回的指针应该是一个指向常量的指针。 class A { public: float getValue1() const{return v;} float const *getValue2() const{return &v;} // 常成员函数默认的指针返回类型是指向常量的指针。 //float *getValue3() const{return &v;} // 编译错误:无法将const float * 转化成float * private: float v; }; int main() { // 非常量可以用常量进行初始化 const float a = 1.0; float b = a; // 但指向非常量的指针不能用指向常量的指针进行初始化 const float *pa = &a; // float *pb = pa; // 编译错误:无法将const float * 转化成float * return 0; }