引言:类与对象的概念
一个对象应包括两个要素:
一是数据(即活动主体),二是需要进行的操作。
对象就是一个包含数据以及与这些数据有关的操作的集合。 (C语言只有数据没有操作)
类是对某一类对象的抽象,对象是某一种类的实例
。
C++中,可先声明类类型,然后去定义若干不同类型的对象, 即对象就是一个类类型的变量,而类类型相当于产生对象的模板。
类中的数据称为
成员变量,函数称为
成员函数。
一、类定义
class Box //关键字+类名
{
public: //访问修饰符public,protected,private
double length; // 盒子的长度
double breadth; // 盒子的宽度
double height; // 盒子的高度
};
二、定义 C++ 对象
Box Box1; // 声明 Box1,类型为 Box
Box Box2; // 声明 Box2,类型为 Box
三、访问数据成员
类的对象的公共数据成员可以使用直接成员访问运算符(.)来访问:
注意:私有的成员和受保护的成员不能使用直接成员访问运算符 (.) 来直接访问
#include <iostream>
using namespace std;
class Box
{
public:
double length; // 长度
double breadth; // 宽度
double height; // 高度
// 成员函数声明
double get(void);
void set( double len, double bre, double hei );
};
// 成员函数定义
double Box::get(void)
{
return length * breadth * height;
}
void Box::set( double len, double bre, double hei)
{
length = len;
breadth = bre;
height = hei;
}
int main( )
{
Box Box1; // 声明 Box1,类型为 Box
Box Box2; // 声明 Box2,类型为 Box
double volume = 0.0; // 用于存储体积
// box 1 变量赋值
Box1.height = 5.0;
Box1.length = 6.0;
Box1.breadth = 7.0;
// box 1 的体积
volume = Box1.height * Box1.length * Box1.breadth;
cout << "Box1 的体积:" << volume <<endl;
// box 2 的体积
Box2.set(16.0, 8.0, 12.0);
volume = Box2.get();
cout << "Box2 的体积:" << volume <<endl;
return 0;
}
四、补充
1.作用域运算符::
float a=13.5;
main()
{
int a=5;
cout<<a<<endl; //输出局部变量5
cout<<::a<<endl; //输出全局变量13.5
}
2.类的数据成员和成员函数
(1)类不能定义自身实例作为它的数据成员,即不能嵌套, 但类可以包含指向自己实例的指针或引用。
(2)不能声明为auto(自动存储变量)、register(寄存器变量)或extern(外部变量)。
在类体内通常先说明公有成员(用户关心),后说明私有成员。
(3)人们将类定义的说明部分或整个定义及实现部分放在头文件中。
(4)成员函数定义在类的外面时,但分两种情况: 使用inline的内联函数和不使用inline的外联函数。
内联函数在调用时不是像一般函数那样要转去执行被调用函数的函数体,
而是编译时用内联函数的函数体进行替换,可提高运行效率。