标签:
1 C++类成员的保护
2 C++类的本质
1 C++类成员的保护
如果类函数返回的是成员变量的指针,为了避免在内外部成员变量被修改,所以函数就要返回常量指针。
1 class man 2 { 3 private: 4 char name[100]; 5 int age; 6 public: 7 void set_name(const char *s) 8 { 9 memset(name, 0, sizeof(name));//初始化 10 if (strcmp(s, "tom") == 0)//不能用tom命名 11 { 12 return; 13 } 14 strcpy(name, s); 15 } 16 void set_age(int i) 17 { 18 age = i; 19 } 20 const char *get_name()//返回const,安全。如果不加上const,可以通过地址强制修改 21 { 22 return name; 23 } 24 int get_age() 25 { 26 return age; 27 } 28 };
如果一个类成员变量和一个全局变量extern重名,那么在类成员函数中默认访问的是类的成员变量。
在类的内部访问全局变量extern,使用标识符双冒号::
1 class man 2 { 3 private: 4 char name[100]; 5 int age; 6 public: 7 void set_name(const char *s) 8 { 9 memset(name, 0, sizeof(name));//初始化 10 if (strcmp(s, "tom") == 0)//不能用tom命名 11 { 12 return; 13 } 14 strcpy(name, s); 15 } 16 void set_age(int i) 17 { 18 ::age = i;//双冒号::代表全局变量extern 19 } 20 const char *get_name()//返回const,安全。如果不加上const,可以通过地址强制修改 21 { 22 return name; 23 } 24 int get_age() 25 { 26 return age; 27 } 28 };
2 C++类的本质
类其实就是结构的数据成员加可执行代码,同时提供封装、继承、多态。
在类内部,没有权限限定符,默认是private
但是在结构体内部,没有权限限定符,默认是public
123
标签:
原文地址:http://www.cnblogs.com/denggelin/p/5596786.html