1 面向对象程序设计的基本特点
面向对象程序设计的基本特点包括:抽象、封装、继承、多态。
1.1 抽象
抽象是指对具体问题或对象进行概括,抽出其公共性质并加以描述的过程。一般分为数据抽象和行为抽象,其中数据抽象是指一个对象区别于另一个对象的特征,行为抽象是指某类对象的共同特征。
1.2 封装
封装是指将抽象得到的数据和行为相结合,隐藏对象属性和实现细节且仅对外提供公共访问的过程。
1.3 继承
继承是指通过代码复用在保持原有类特性的基础上对子类进行具体说明的过程,通俗来说继承就是精简重复代码的手段。
1.4 多态
多态是指一段代码程序能够处理多种类型对象的能力,函数重载就是实现多态的一种手段。在C++语言中多态可分为强制多态、重载多态、类型参数化多态和包含多态。
2 类
类是 C++ 语言支持面向对象思想的重要机制,是实现封装的基本单元。
2.1 类的定义
类一般由类名、数据成员、函数成员三部分组成,定义类的基本形式为:
class 类的名称
{
public:
外部接口
protected:
保护性成员
private:
私有成员
}
其中 public、protected、private 表示访问控制属性,用于控制类成员的访问权限。特别的,没有分配控制属性的默认为 private 私有成员。
2.2 类成员访问控制
关于类的内容的博客。
示例程序:
#include<iostream>
using namespace std;
class area //定义 area 类。
{
public: //定义公有成员,外部可以访问。
double width;
double length;
};
int main()
{
area area1; //定义对象 area1。
double AREA; //定义双精度型变量 AREA。
area1.width=3; //外部访问公有成员,设置宽为 3。
area1.length=3.1; //外部访问公有成员,设置长为 3.1。
AREA=area1.width*area1.length; //计算面积。
cout << AREA <<endl; //输出面积
return 0;
}
#include<iostream>
using namespace std;
class area //定义 area 类。
{
protected://定义受保护的成员。
double width;
};
class squarearea:area //定义 squarearea 子类。
{
public: //定义公有成员。
void setsquarewidth(double wid); //定义成员函数。
double getsquarewidth(void);
};
//定义子类的成员函数。
void squarearea::setsquarewidth(double wid)
{
width=wid; //通过 squarearea 子类访问 area 类中受保护的成员 width。
}
double squarearea::getsquarewidth(void)
{
return width;
}
//程序的主函数 。
int main()
{
squarearea square; //定义对象。
square.setsquarewidth(3.1); //设置宽度为 3.1。
cout <<"width:"<<square.getsquarewidth()<<endl; //输出设置的宽度。
return 0;
}
#include<iostream>
using namespace std;
class area
{
public: //定义公有成员
double length;
void setwidth(double wid);
double getwidth(void);
private://定义私有成员
double width;
};
//定义公有成员函数
void area::setwidth(double wid)
{
width=wid;
}
double area::getwidth(void)
{
return width;
}
//主函数
int main()
{
area len1; //定义对象
area wid1;
len1.length=3.1; //访问 area 类公有成员。
cout<<"length:"<<len1.length<<endl;
wid1.setwidth(3.2); //使用公有成员函数设置宽度。
cout <<"width:"<<wid1.getwidth()<<endl;
return 0;
}
3 对象
在 C++ 语言中,对象是某类事物的实例。其声明形式为:
类名 对象名;
访问对象的成员
定义了类及其对象后,则可访问对象的成员。访问 数据成员 基本形式为:
对象名.成员名
类的成员函数
成员函数描述了类的行为。成员函数在类中只用说明其函数的返回类型、名字和参数表,而函数的具体实现在类外说明,其基本形式为:
class 类名
{
函数的返回类型 函数名(参数列表)
}
返回值类型 类名::函数名(参数列表) //特别的,在类外说明函数的具体实现时,需要使用类名限制成员函数,其形式为:类名::函数名(参数列表)。
{
函数体
}
示例:
#include<iostream>
using namespace std;
class Volume
{
public:
double width;
double length;
double high;
};
int main()
{
Volume volume1;
volume1.width = 3;
volume1.length = 4;
volume1.high = 5.1;
double VOLUME;
VOLUME = volume1.width * volume1.length * volume1.high;
cout << VOLUME << endl;
return 0;
}