C++编程:类与成员数据详解

需积分: 0 13 下载量 23 浏览量 更新于2024-08-18 收藏 3.82MB PPT 举报
"东南大学C++课程-成员数据" 在C++编程中,成员数据是类(class)的一部分,用于存储类实例的属性或状态。成员数据可以是各种基本数据类型,如`double`、`int`等,也可以是其他复合类型的变量。在提供的描述中,可以看到一个名为`complex`的类,它包含了两个私有(private)成员数据`real`和`imag`,分别表示复数的实部和虚部。 成员数据的声明方式类似于普通变量,但它们需要放置在类的声明体内,并通过访问修饰符(如`public`、`private`或`protected`)来控制其可访问性。在这个例子中,`real`和`imag`被声明为私有成员,意味着它们在类的外部不能直接访问,除非通过公有(public)成员函数。 类`complex`还定义了几个公有成员函数,这些函数提供了对外部访问私有成员数据的接口。例如,`init`函数用于初始化复数的实部和虚部,`realcomplex`和`imagcomplex`返回复数的实部和虚部,而`abscomplex`计算复数的模(绝对值)。 在C++中,类的成员函数可以分为两类:成员函数和友元函数。成员函数是属于类的一部分,可以直接访问类的私有和保护成员。而在上述代码中,所有的成员函数都是在类内部声明的,这是常见的做法,但在实际编程中,也可以选择在类外部定义成员函数,此时需要使用`inline`关键字来告诉编译器这个函数是类的成员。 类的构造函数是一种特殊的成员函数,用于在创建对象时初始化成员数据。虽然这个例子没有显示构造函数,但提到了一个概念——初始化列表。在C++中,可以使用初始化列表在对象创建时给成员数据赋予初始值。例如,一个`complex`类的构造函数可能会这样写: ```cpp complex(double r, double i) : real(r), imag(i) {} ``` 析构函数是另一个特殊成员函数,当对象生命周期结束(即对象被销毁)时自动调用。虽然代码中没有显示析构函数,但提到如果需要在对象删除前执行某些操作,可以在析构函数中实现。 面向对象编程(OOP)是C++的核心特性之一,它强调数据封装、继承、多态等概念。在OOP中,类是对象的蓝图,对象是类的实例。成员数据和成员函数结合在一起,构成了类的完整定义。通过类,我们可以对现实世界中的事物进行抽象,创建模型,并以这些模型为基础编写程序。 在描述中提到的结构体`aircraft`展示了如何为不同类型的飞机(战斗机、轰炸机、运输机)定义结构。结构体是C++中的另一种复合数据类型,类似于类,但默认所有成员都是公开的。通过结构体,可以存储多个相关数据项,并通过成员函数进行操作。 此外,描述还提到了函数和类的封装性,以及程序设计的模块化思想。函数封装了一组相关的语句,类则封装了数据和操作这些数据的函数。程序设计通常采用自顶向下的方式,从整体功能出发,逐步细化到每个模块的实现。 成员数据是类的核心组成部分,它们是类对象的状态载体,而成员函数则是对这些状态进行操作的工具。通过合理的类设计和成员数据管理,可以构建出高效、易于维护的面向对象程序。