C++|对象数组和对象指针

发布时间:2026/6/14 10:29:49

C++|对象数组和对象指针 一、对象数组因为类 本质上也是一种数据类型所以定义对象数组、使用对象数组的方法与基本数据类型相似系统为对象数组分配适合的内存空间以存放数组中的每个对象同时还为每个对象自动调用匹配的构造函数完成数组内每个对象的初始化工作,但数组结束时会自动调用每个对象的析构函数。声明对象数组的格式为类名 数组名[数组长度];对象数组通过下标访问具体对象访问具体对象的数据成员的格式为数组名[下标].数据成员;//必须有访问权限访问具体对象的成员函数的格式为数组名[下标].成员函数(实参列表);//必须有访问权限数组对象,构造是从0下标开始往后进行,而析构是从后往前进行还是先构造的后析构后构造的先析构class Box //长方体类 { public: Box(int len 1, int w 1, int h 1) ://声明有默认参数的构造函数 length(len), width(w), height(h) { cout Box构造函数被调用,它的长是: length endl; } ~Box() { cout Box析构函数被调用,它的长是: length endl; } int volume(); //计算体积 private: int length;//长 int width; //宽 int height; //高 }; int Box::volume() //计算体积 { return(length * width * height); } int main() { Box a[3] { //定义对象数组¦ Box(), //调用构造函数Box用默认参数初始化第1个元素的数据成员 Box(10,15), //调用构造函数Box提供第2个元素的实参 Box(20,30,40) //调用构造函数Box提供第3个元素的实参 }; cout a[0] 的体积是: a[0].volume() endl; cout a[1] 的体积是: a[1].volume() endl; cout a[2] 的体积是: a[2].volume() endl; return 0; }二、对象指针在 C 中对象指针的定义和使用与普通指针类似只是它指向的是一个类的对象。对象指针在使用之前必须先进行初始化 。可以让它指向一个已定义的对象也可以用new运算符动态建立堆对象。定义对象指针的格式为两种都可类名 *对象指针 对象;//用引用类名 *对象指针 new 类名(参数);//先使用动态内存 创建好用对象指针访问对象数据成员的格式为对象指针名-数据成员用对象指针访问对象成员函数的格式为对象指针名-成员函数(实参列表);class Square //正方形 { private: double length; //边长 public: Square(double len) :length(len)//构造函数 {} void show(); //输出函数 }; void Square::show() { cout 正方形边长: length; cout ,面积:length * length endl; } int main() { Square s(2.5); Square *s1 s; s1-show(); Square* s2 new Square{ 3.5 }; //动态创建 s2-show(); delete s2; //释放动态内存 return 0; }

相关新闻