#include <iostream>
#include <string>
using std::cout;
using std::cin;
using std::endl;
using std::string;
class Rectangle
{
private:
double width;
double height;
public:
Rectangle(double w, double h)
{
width = w;
height = h;
}
void setWidth(double w)
{
width = w;
}
double getArea()
{
cout << "width = " << width << endl;
cout << "height = " << height << endl;
return width * height;
}
};
int main()
{
Rectangle rect1(3.5, 7.0);
rect1.setWidth(10.0);
double rect1Area = rect1.getArea();
cout << rect1Area << endl;
return 0;
}
上面的代码产生以下(不正确的)输出:
width = 3.5
height = 10
35
Program ended with exit code: 0
这很奇怪,因为宽度设置为10,而不是高度。此外,如果我只是通过删除一个字母或添加一个字母(当然在定义和函数调用中)来更改setWidth方法的名称,那么程序将提供以下(正确的)输出:
width = 10
height = 7
70
Program ended with exit code: 0
我尝试过清理和重新构建,将代码复制到新文件,退出并重新启动Xcode甚至重新启动计算机,但这种行为仍在继续。这令人困惑。我正在使用Xcode 7.3.1。任何见解?