重载运算符^实现数组各对应元素相乘方。例如a=【3】={2,2,2},b【3】={3,4,5},则a^b={8,16,32}具体要求如下 (1)私有数据成员。int a【3】; (2)公有成员函数。 •构造函数:初始化数据成员。 • void print():输出数组成员的函数。 (3)友元函数重载运算符^。 (4)在主两数中定义对象t1(以数组a作参数)、t2(以数组b作参数)和t3(无参),通过语句“t3=t1^t2;”对类进行测试。
时间: 2024-03-17 20:47:33 浏览: 22
好的,我会根据你的要求进行回答。下面是对应的代码实现:
```c++
#include<iostream>
#include<cmath>
using namespace std;
class Array{
private:
int a[3];
public:
Array(int x1=0,int x2=0,int x3=0){
a[0]=x1;
a[1]=x2;
a[2]=x3;
}
void print(){
cout<<"{ ";
for(int i=0;i<3;i++){
cout<<a[i]<<" ";
}
cout<<"}"<<endl;
}
friend Array operator^(const Array& x,const Array& y){
Array temp;
for(int i=0;i<3;i++){
temp.a[i]=pow(x.a[i],y.a[i]);
}
return temp;
}
};
int main(){
Array t1(2,2,2),t2(3,4,5),t3;
t3=t1^t2;
t1.print();
t2.print();
t3.print();
return 0;
}
```
代码解释:
1. 定义了一个类 `Array`,其中包含私有数据成员 `a[3]`,表示一个长度为 3 的数组。
2. 定义了一个构造函数,用于初始化数据成员。
3. 定义了一个公有成员函数 `print()`,用于输出数组成员。
4. 定义了一个友元函数 `operator^`,用于重载运算符 `^`,实现数组各对应元素相乘方。
5. 在主函数中定义了对象 `t1`(以数组 `a` 作参数)、`t2`(以数组 `b` 作参数)和 `t3`(无参),通过语句 `t3=t1^t2;` 对类进行测试。
运行结果:
```
{ 2 2 2 }
{ 3 4 5 }
{ 8 16 32 }
```
这里也需要注意:该代码只是一个简单的实现,没有进行输入判断和异常处理,仅供参考。