一:抽象和类
类是一种将抽象转化为用户定义类型的C++工具。它将数据表示和数据处理的方法进行组合。那么如何来定义类呢?
要想对类进行定义,得先知道类的组成吧。类由数据成员和成员函数组成。数据成员可以包含int、char、double、float等各种类型,如何定义主要还是根据对对象的描述,即如何对对象进行表示。典型的类结构如下:
class className
{
public:
member function prototypes
private:
data member declarations
};
看到这里,肯定会有疑问!public和private是用来做什么的?public、private、protected是类中的访问控制符,public下声明的数据成员和成员函数可以可进行读取和修改,private下定义的部分只能进行读取,不能进行修改,即“只读”。一般在写程序时,先声明公有部分,再声明私有部分。
举个例子,想了解一款车,首先得知道车的名字,用char 来定义车名,客户自然最关心的是车的价格、载客量啊之类的,用double型来表示车的价格,用int型来表示载客数量
class Car
{
char name[10];
double price;
int passenger;
void setprice();
void getprice();
};
程序中class为关键字,用来定义类。Car为类的名称
1.类的实例化
知道如何定义类之后,我们来看如何实例化一个类(实例化:类创建对象的过程)
#include <iostream>
#include <string>
using namespace std;
class Car
{
public:
string m_strName;
double m_dprice;
};
int main()
{
Car car;
car.m_strName="奔驰";
car.m_dprice = 200000.00;
cout << car.m_strName << " " <<car.m_dprice<< endl;
system("pause");
return 0;
}
实例化可分为从栈的实例化和从堆的的实例化
从堆中实例化,即使用new来申请一块内存,代码如下所示:
Car *p=new Car();
delete p;
return 0;
注意:在申请完内存后记得最后进行释放。
2 .类中成员的访问
(1)栈中实例化后成员的访问方式
Car car;
car.m_strName="奔驰";
car.m_dprice = 200000.00;
(2)堆中实例化后成员的访问方式
Car *p=new Car();
p->m_strName="奔驰";
p->m_dprice=2000
delete p;
p=NULL;
return 0;