所以我一直在研究一个程序,我有一个名为CDistance的类,就在这里,
class CDistance
{
private:
int feet, inches;
public:
CDistance();
CDistance(int, int);
void setDist();
void printDist() const;
CDistance add(const CDistance&) const;
};
我需要做的部分是创建一个包含5个这些对象的数组,在每个对象上设置英尺和英寸,然后将它们添加到一起而不更改原始变量。这是函数定义,正如您所看到的,它正在处理所有常量成员,因此需要确定如何引用变量,但最重要的是,将它们恢复为要返回的CDistance类型。我应该在此函数中创建一个新的CDistance类型来使用ref
CDistance CDistance::add(const CDistance&) const
{
}
这就是我被困住的地方,我对整个指针和封装协议感到困惑。我是编程的新手,并且学到了很难的方法,但是如果有人可以帮我解决这个问题,我会非常感激
答案 0 :(得分:0)
您可以从函数中简单地return
本地结果实例:
CDistance CDistance::add(const CDistance& other) const
{
CDistance result(*this);
// Calculate the result using result.feet, result.inches and
// other.feet, other.inches
return result;
}
答案 1 :(得分:0)
我应该在此函数中创建一个新的CDistance类型来使用ref
是的,您需要一个新对象来修改并返回:
CDistance add(const CDistance& other) const {
CDistance result = *this; // Copy this object
result.feet += other.feet; // Add the other object...
result.inches += other.inches; // ... to the copy
return result; // Return the copy
}
请注意,这并不完整;有一个故意的错误,以及未知数量的意外错误,你需要自己修复。