【发布时间】:2019-10-10 22:13:47
【问题描述】:
我正在尝试学习 C++ 语法,对于下面的这个函数 close_coin,我在 closest_coin 函数中的 return result 行中获得了“使用未声明的标识符”。为什么我在赋值变量result时在if语句中声明了类型会出现这种情况?
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
class Point{
public:
int x,y;
Point(int x_position, int y_position){
x = x_position;
y = y_position;
}
int calculate_distance(Point other_point);
};
int Point::calculate_distance(Point p2){
int x_distance = abs(x-p2.x);
int y_distance = abs(y-p2.y);
int result = x_distance-y_distance;
return result;
}
Point closest_coin(Point your_position, vector<Point> coin_positions){
int closest_distance = -1;
int distance;
for (Point coin : coin_positions){
distance = your_position.calculate_distance(coin);
if (distance>closest_distance){
Point result = coin;
closest_distance = distance;
}
}
return result;
}
【问题讨论】:
-
看看你在哪里声明
Point result和return result;在哪里。这些是不同的范围 -
所以我需要添加“点结果;”在最接近的_coin(){ } 括号内?
标签: c++