【发布时间】:2013-12-06 20:16:27
【问题描述】:
对于一个项目,我必须创建一个包含英尺和英寸变量的类,并且有一个方法可以将这些变量从对象 1 和对象 2 以及对象 3、4 等相加。
CDistance CDistance::add(const CDistance& yourDist) const
{
CDistance total;
total.feet += yourDist.feet;
total.inches += yourDist.inches;
/*if (total.inches > 12)
{
total.feet += (total.inches / 12);
total.inches = total.inches % 12;
}*/
return total;
}
这是我添加的方法,这里是主源文件中的一个函数,我在其中处理每个类
void printAndAdd(const CDistance distList[], int size)
{
CDistance new_total;
new_total = distList[0].add(distList[1].add(distList[2].add(distList[3].add(distList[4]))));
new_total.printDist();
}
这是我用来在屏幕上打印数据的方法
void CDistance::printDist() const
{
cout << "Feet: " << this->feet << "\n\n";
cout << "Inches: " << this->inches << "\n\n";
}
我曾考虑在第二行使用 for 循环,但我遇到了一些问题。每当我打印数据时,它都是 0。好像 add 函数不起作用,我不太确定我什至理解我做了什么。从我认为我正在做的事情来看,它正在创建一个新的对象,将引用对象中的变量添加到创建的对象中,注释掉的部分是我现在刚刚取出的部分,稍后会添加,然后它返回物体。当我在我的主源文件中调用该函数时,它会将对象 new_total 设置为等于对象 0、1、2、3 和 4 的总和。我是接近,还是远离实际发生的事情?我还应该解释一下,我只编程了大约一年,这对我来说真的很有趣,但有时自然会很困难,而且我仍在努力掌握 C++ 中类的概念。
【问题讨论】:
标签: c++ arrays class pointers reference