#include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<algorithm> using namespace std; class Base{ private: int x; char *p; public: Base(void){ x=0; p=(char *)malloc(sizeof(10)); strcpy(p,"123456"); } void Set_x(int tx){ x=tx; } //函數名后面加const表示這個對象指針this所指之物是無法改變的 int Get_x()const{ //x++;這樣編譯報錯 return x; } //返回值是指針類型,防止指針意外變化,所以用const修飾 const char* ret_p(){ return p; } }; int main(){ Base a=Base(); printf("%d\n",a.Get_x()); //char* y=a.ret_p(); 這樣編譯會出錯,需要const 修飾的 const char* y=a.ret_p(); printf("%s\n",y); }
參考:高質量C++C 編程指南