C++入门经典-例7.9-对象数组,批量化生产

1:在数组内容中我们了解到,数组是通过指针分配到的一段额定大小的内容。同样,数组也可以包含对象。声明对象数组的形式如下:

box boxArray[5];

box boxArray2[2]={box(1,1,1),box(2,2,2)};

box boxArray3[3]={3,styleBox};

值得注意的是,第一种申请对象数组的方法必须保证类中含有默认的够好函数,否则编译器将会报错。同样,可以通过对象指针申请动态数组。例如:

box* box;

pbox=new box[n];//n为整数

同时需要确认box中含有默认构造函数。

2:代码如下:

时间: 2024-12-19 17:16:21

C++入门经典-例7.9-对象数组,批量化生产的相关文章

C++入门经典-例6.12-使用数组地址将二维数组输出

1:以a[4][3]为例 a代表二维数组的地址,通过指针运算符可以获取数组中的元素 (1)a+n代表第n行的首地址 (2)&a[0][0]既可以看作第0行0列的首地址,同样也可以被看作是二维数组的首地址.&a[m][n]就是第m行n列元素的地址 (3)&a[0]是第0行的首地址,当然&a[n]就是第n行的首地址 (4)a[0]+(n-1)表示第0行第n个元素 (5)*(*(a+n)+m)表示第n行第m列 (6)*(a[n]+m)表示第n行第m列元素 2:代码如下: // 6

C++入门经典-例9.6-有界数组模板,数组下标的越界警告

1:C++语言不能检查数组下标是否越界,如果下标越界就会造成程序崩溃,而程序员在编辑代码时很难找到下标越界错误.那么如何能使数组进行下标越界检测呢?此时可以建立数组模板,在定义模板时对数组的下标进行检查. 在模板中想要获取下标值,需要重载数组下标运算符"[]",重载数组下标运算符后使用模板类实例化数组,就可以进行下标越界检测了.例如: #include <cassert> template <class T,int b> class Array { T&

C++入门经典-例6.9-通过指针变量获取数组中的元素

1:通过指针引用数组,需要先声明一个数组,再声明一个指针. int a[10]; int *p; 然后通过&运算符获取数组中元素的地址,再将地址值赋给指针变量. p=&a[0]; 代码实例如下: // 6.9.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using namespace std; void main() { int i,a[10]; int *p; //利用循环

C++入门经典-例6.14-通过指针连接两个字符数组

1:字符数组是一个一维数组,引用字符数组的指针为字符指针,字符指针就是指向字符型内存空间的指针变量. char *p; char *string="www.mingri.book"; 2:实例,通过指针连接两个字符数组,代码如下: // 6.14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using namespace std; void main() { char st

C++入门经典-例6.13-指针与二维数组

1:代码如下: // 6.13.cpp : 定义控制台应用程序的入口点. // #include"stdafx.h" #include<iostream> using namespace std; void main() { int a[3][4]; int (*b)[4];//指向int数组的指针,也可以用int *b; int *c[4]; //储存指针的数组,最多只能储存4个指针 int *p; p = a[0]; //a[0]是int型指针,同样a[1] a[2]

C++入门经典-例6.11-使用指针变量遍历二维数组

1:代码如下: // 6.11.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; void main() { int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p; p=a[0]; for(int i=0;i<sizeof(a)/sizeof(int);i+

C++入门经典-例6.17-输出每行数组中的最小值

1:代码如下: // 6.17.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using namespace std; void mix(int (*a)[4],int m)//形参是定义一个指向数组的指针 //进行比较和交换的函数 { int value,i,j; for(i=0;i<m;i++) { value=*(*(a+i)); for(j=0;j<4;j++) if(*(*

C++入门经典-例6.15-通过字符串函数连接两个字符数组

1:代码如下 // 6.15.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using namespace std; void main() { char str1[50], str2[30], *p1, *p2; p1 = str1; p2 = str2; cout << "please input string1:" << endl; gets_

C++入门经典-例6.10-将多维数组转换成一维数组

1:代码如下: // 6.10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using namespace std; void main() { int array1[3][4]={{1,2,3,4}, {5,6,7,8}, {9,10,11,12}}; int array2[12]={0}; int row,col,i; cout << "array old"