2类和对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2类和对象相关的知识,希望对你有一定的参考价值。

 

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

以上是关于2类和对象的主要内容,如果未能解决你的问题,请参考以下文章

10方法的定义和重载和递归

使用CSS伪类和伪对象实现dl;dt+dd在一行显示

使用CSS伪类和伪对象实现dl;dt+dd在一行显示

Java系列类和对象中需要注意的事情

Java类和对象-学习笔记(超级详细~~~)

Java 基础语法爆肝1W字只为弄懂类和对象