C++基础(和类有关2)对象的定义

一 对象的定义
定义一个类时,也就是定义了一个具体的数据类型。若要使用类, 需要将类实例化,即定义该类的对象。
1.先定义类类型再定义对象
有两种定义对象的形式:
①将类的名字直接用作类型名:
类名 对象名列表
②指定关键字class或struct,后面跟着类的名字:

    class  类名  对象名列表;
    或 
    struct  类名  对象名列表;

对象名列表是一个或多个对象的序列,各对象之间用逗号(,)分隔,最后必须用分号(;)结束,对象取名必须遵循标识符的命名规则。例如
Point a,b; ; //C++ 特色定义对象
class Point x,y; ; // 兼容C C 语言特色定义对象
2.定义类类型的同时定义对象
一般形式为:

class 类名  {  // 类体
成员列表
}  对象名列表 ;

例如:

class  Point {  // 类体
public: : … … // 公有的数据成员和成员函数
private: : … … // 私有的数据成员和成员函数
} one , two;  //对象列表

3.直接定义对象
一般形式为:

class {  // 类体
成员列表
}  对象名列表 ;

例如:

class  {  // 无类名类体
public: … … // 公有的数据成员和成员函数
private: … … // 私有的数据成员和成员函数
} p1 , p2; // 对象列表

二 对象的动态建立和释放
有时人们希望在需要用到对象时才创建(create)对象,在不需要用该对象时就撤销(destroy)它,释放其所占的存储空间,从而提高存储空间的利用率。 利用new运算符可以动态地分配对象空间,delete运算符释放对象空间。
动态分配对象的一般形式为:
类名 * 对象指针变量;
对象指针变量 = new 类名;
例如:

Point *a;//定义指向Point对象的指针变量
a=new Point;//动态分配Point对象

用new运算动态分配得到的对象是无名的,它返回一个指向新对象的指针的值,即分配得到是对象的内存单元的起始地址。程序通过这个地址可以间接访问这个对象,因此需要定义一个指向类的对象
的指针变量来存放该地址。显然,用new建立的动态对象是通过指针来引用的。 在执行new运算时,如果内存不足,无法开辟所需的内存空间,C++编译器会返回一个0值指针。因此,只要检测返回值是否为0,
就可以判断动态分配对象是否成功,只有指针有效时才能使用对象指针。
当不再需要使用由new建立的动态对象时,必须用delete运算予以撤销。例如:

delete p ;//撤销p所指的Point对象

释放了p所指向的对象。此后程序不能再使用该对象。new建立的动态对象不会自动被撤销,即使程序运行结束也是如此,必须人为使用delete撤销。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值