使用Friend函数和operator+添加类变量并打印出来
using Friend function and operator+ to add class variables and print out
我写了一段代码,它接受3个整数(整数、分子和分母)的输入,并将它们显示为"a{b/c}"我定义/声明了一个类(fraction),它包含这3个独立的整数变量以及读取和打印它们的函数。为了存储这些不同的输出,我创建了一个定义了类类型的动态数组。我想把所有的价值加在一起fract[0].a+frac[1].a…etc的整数部分,并找到分数部分的和,然后显示它。
对于类声明,我包含了一个友元函数:
friend fraction operator +(fraction, fraction);
我还声明了2个动态数组的类型分数
fraction* fracarry = new fraction[x];
fraction* fractot = new fraction[1];
fracarry存储输入分数,fractot初始化为:
numerator = 0;
denominator = 1;
integral = 0;
友元函数的定义如下:
fraction operator+(fraction, fraction)
{
for(int i = 0; i < x; i++)
{
fractot[0].denominator += fracarry[i].denominator*fractot[0].denominator;
fractot[0].integral += fracarry[i].integral;
fractot[0].numerator += ((fracarry[i].numerator*fractot[0].denominator) + (fractot[0].numerator*fracarry[i].denominator));
}
return fractot[0];
}
其中x是用户对将要输入多少分数的输入。
主要功能是:
cout << " Please input how many fractions you will be inputting: " << endl;
cin >> x;
fraction *fracarry = new fraction[x];
fraction *fractot = new fraction[1];
fracarry[0].read();
fractot[0] = fractot[0] + fracarry[0];
fractot[0].print2();
我不确定我是应该在函数定义中使用循环还是在主函数中使用循环。它符合要求,读取/打印功能正常工作,但我无法将fractot.print2()显示为fracarry 中存储的值的最终总和
我不想要确切的代码,只是任何我可能出错的地方/查找内容的提示,或者任何可能有助于等的教程
谢谢!
**编辑这与所问的问题相同,但我试图减少不相关的代码/使其更符合要求!
我认为您的问题在于以下几行:
fractot[0].integral =+ fracarry[j].integral;
fractot[0].numerator =+ fracarry[j].numerator;
为了将参数与其自身的值求和,必须这样写:+=
相关文章:
- 查找后更改类变量
- 如何避免在仅标头库中C++类/变量重定义
- c++ 在非类函数中使用类变量
- 基于模板的类变量
- 分段 访问私有类变量时出错
- 为什么从另一个构造函数内部调用C++构造函数不修改类变量?
- 如何访问基类向量中的子类变量?(对于实体组件系统)
- 打印类中的变量
- 模板类变量作为非模板类的成员
- 使用更改此变量的函数在同一行中打印引用变量
- C++11 - 获取编译时的所有类变量,并在没有 Boost 的情况下为它们调用方法
- 如何在构造函数中访问类变量以分配它们,而无需在C++中使用此指针
- 类变量无法从类方法访问
- 指针作为类变量 Qt
- 为什么线程对类变量所做的更改没有影响?
- memcpy() 在一个类中被调用以复制到另一个类变量中后会引发异常
- C++ 类变量未打印分配的正确值
- 如何从无序列图中打印私有类变量
- 使用Friend函数和operator+添加类变量并打印出来
- 从gdb模板类的成员函数中打印静态变量