void visitboygirl(Boy &b,Girl &g) {
cout<<\< int _tmain(int argc, _TCHAR* argv[]) { Boy b; Girl n; cout <<\ visitboygirl(b,n); return 0; } (4)运行结果(截图) 错误显示: ①友元的不可逆性: ②Boy与Girl互为友元错误显示: ③顶层函数visitboygirl(boy &,girl &),作为两个类的友元显示: (5)心得体会 ①编写姓名时用char或者string,要在最上边声明#include 实验5 数组指针与字符串 1.1 实验目的和要求 1.学习使用数组。 2.掌握指针的使用方法,体会运算符&、*的不同作用。 3. 学习字符串数据的组织和处理。 4. 练习通过动态分配内存实现动态数组,并体会指针在其中的作用。 5.分别使用字符数组和标准C++库练习处理字符串的方法。 1.2 所占学时数 本实验安排4个实验课时。 1.3 实验任务 1.3.1 任务 (1)题目名称 编写C++程序完成以下功能: 用类来实现矩阵,定义一个矩阵的类,属性包括:矩阵大小,用lines, rows(行、列来表示);存贮矩阵的数组指针,根据矩阵大小动态申请(new)。 矩阵类的方法包括: 构造函数:参数是矩阵大小,需要动态申请存贮矩阵的数组; 析构函数:需要释放矩阵的数组指针; 拷贝构造函数:需要申请和复制数组(深复制); 输入函数:可以从cin中输入矩阵元素; 输出函数:将矩阵格式化输出到cout; 矩阵相加函数:实现两个矩阵相加的功能,结果保存在另一个矩 阵里,但必须矩阵大小相同; 矩阵相减的函数:实现两个矩阵相减的功能,结果保存在另一个矩阵里,但必须矩阵大小相同。 主函数功能: 定义三个矩阵:A1、A2、A3;初始化A1、A2;计算并输出A3 = A1+A2,A3=A1+A2; 用new动态创建三个矩阵类的对象:pA1、pA1、pA3;初始化pA1、pA2;计算并输出pA3=pA1+pA2,pA3=pA1+pA2; 释放pA1、pA1、pA3。 (2)构思过程(可用文字、流程图、UML图等方式表达) 首先,由题目中得到矩阵程序中要求方法,为保证调理清晰,在类中先声明,在类外具体写内容,动态构建矩阵要用到指针和关键字new,明确每个方法的要求,按要求编写程序,主函数实现为初始化以及动态构建矩阵两个内容实现程序功能。 (3)程序源码 #include #include int lines;int rows;int size; public: int*p; public : Marix(); Marix(int ,int ); ~Marix(); Marix(Marix&r); public: void in (); void out (); Marix add(Marix r); Marix sub( Marix r); }; Marix::Marix(){lines=rows=3;size=9;p=p=new int [9];}; Marix::Marix(int a,int b) { lines=a;rows=b; size=lines*rows; p=new int [size]; } Marix::~Marix() { delete []p; } Marix::Marix(Marix&r) { this->lines=r.lines; this->rows=r.rows; this->size=r.size; this->p=new int [this->size]; for (int i=0;i void Marix::in () { for (int i=0;i for (int j=i*rows;j

