C语言类的定义

1、类的定义

1.1、类的定义

  类(class)是用户自定义的数据类型。如果程序中要使用类类型(class type)对象,就必须根据实际需要定义,或者使用已设计好的类。

  C++定义一个类,其方法于定义一个结构体类型是相似的,一般形式为:

  一个类的定义有以下三个特点:

1)每个类可以没有成员,也可以有多个成员;

2)类成员可以是数据,也可以是函数;

3)所有成员都必须在类的内部声明,一旦类定义完成后,就没有任何其他方式可以增加成员了。

1.2、类数据成员定义

  类定义是必须给出数据成员(data member)的数据类型声明,其一般形式为:

  此外每个类还可以包含成员函数,在该类的定义中能够访问该类自身的所有成员。

  面向对象的程序设计一般将数据隐蔽起来,外部不能直接访问,而把成员函数作为外界的接口,通过成员函数访问数据。即数据成员是属性,成员函数是方法,通过方法存取属性。

1.3、类成员函数定义

  如果类中有成员函数,则声明成员函数是必需的,定义成员函数是可选的,因此,类的成员函数有两种形式:

1)在类中(声明中)定义成员函数,形式如下:

2)在类外定义成员函数,形式如下:

例:成员函数的定义

1.4、类的作用域

  类的作用域和其他变量一样,分为全局和局部。

  类定义一般放在程序的文件开头,或者放到头文件中被程序文件包含,此时类的作用域时全局的。在全局作用域内,该定义处处可见,因此同作用域内的所有函数都可以使用它。

  类定义也可以放在函数内部或者局部作用域中,此时类的定义是局部的。如果函数内部有同名的类定义,则全局声明在该函数内部是无效的,有效的是局部定义的类。

  C++规定,在局部作用域中声明的类,成员函数必须是函数定义的形式,而不是原型声明的形式,即定义局部类就要在局部作用域内定义类的所有内容。但是一般类是为整个程序服务的,因此很少有将类放到局部作用域中去。

1.5、类的存储空间分配

  类定义向编译器定义了一种新的数据类型,该数据类型有不同类型的数据成员和成员函数。尽管数据成员类似变量的定义,但由于类声明时并不会产生该成员的实体,即系统不会为实体数据成员为空的类分配空间。系统只会对具有实体对象的类分配空间。

2、类的成员的访问控制

  对类成员的访问,来自两个访问源:类成员和类用户。

  类成员指类本身的成员;类用户指类外部的使用者,包括全局函数,另一个类的成员函数等。

 无论数据成员还是函数成员,类的每个成员都有访问控制属性,有以下三种访问标号说明:public(公有的)、private(私有的)、protected(保护的)

  一、共有成员public:

  公有成员用public标号声明,类成员和类用户都可以访问公有成员,但是来自类外部的类用户必须通过公有成员来访问。显然,public实现了类的外部接口。

  二、私有成员private:

  私有成员用private标号声明,只有类成员可以访问私有成员,类用户不允许访问私有成员。显然,private实现了私有成员的隐蔽。

  三、保护成员protected:

  保护成员用protected标号声明,在不考虑继承的情况下,protected的性质和private性质一样,但是保护成员可以被派生类成员访问,而私有成员不能被派生类成员访问。

  成员访问控制时C++的类和结构体的又一个重要特性,加上访问标识符,类定义的一般形式为:

  如果没有声明访问控制属性,类所有成员默认为private,即私有的。(结构体默认为public)

例如:

全部评论
加油
点赞 回复 分享
发布于 2023-12-27 20:27 黑龙江

相关推荐

季桑陌:这怎么看是不是外包啊
点赞 评论 收藏
分享
谁知道呢_:要掉小珍珠了,库库学三年,这个结果
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务