函数返回值为 const 指针、const 引用

    科技2022-07-16  106

    函数返回值为 const 指针,可以使得外部在得到这个指针后,不能修改其指向的内容。返回值为 const 引用同理。

    class CString { private: char* str; public: const char* c_str() const; }; const char* CString::c_str() const { return str; } int main() { CString s; const char* p = s.c_str(); }

    下面的两条语句编译时都会报错。第一条语句出错是因为 “=” 左边是 char* 类型,右边是 const char* 类型,两边类型不匹配;第二条语句出错是因为 strcpy 函数的第一个形参是 char* 类型,而这里实参给出的是却是 const char* 类型,同样是类型不匹配。

    char* p = s.c_str(); strcpy(s.c_str(), "Tiangong 1");

    除非进行强制类型转换

    char* tmp = (char*)s.c_str();
    Processed: 0.009, SQL: 8