我正在用C ++类介绍OOP,我们介绍了结构。老师希望我们创建一个结构点,它将是一个点的x和y坐标,然后使用它们来做各种事情。 她想要的一个例子是“dist - 这个函数将获得两个点并计算并返回点之间的距离。” 但是,每当我尝试将点传递给函数时,我都会收到错误。
例如,如果我初始化
float dist(Point a);
定义
float dist(Point a){
return 1;
}
我没有收到错误,但如果我说
float dist(Point a, Point b);
float dist(Point a, Point b){
return 1;
}
错误会将我弹出到另一个屏幕并突出显示该行
typedef typename _Iterator::iterator_category iterator_category;
我不能以这种方式传递两个结构,或者我只是误读了她的指示?
提前致谢。
编辑:以下是请求的完整代码,但不起作用。
#include <iostream>
#include <cmath>
using namespace std;
struct Point{
float x;
float y;
}a,b,c;
Point readPt(Point current);
void showPt(Point current);
float distance(Point first, Point second);
int main(){
int test;
cout << "Enter your first point.\n";
a = readPt(a);
cout << "Enter your second point.\n";
b = readPt(b);
showPt(a);
showPt(b);
test = distance(a, b);
return 0;
}
Point readPt(Point current){
char junk;
cin >> junk >> current.x >> junk >> current.y >> junk;
return current;
}
void showPt(Point current){
cout << "(" << current.x << "," << current.y << ")";
}
float distance(Point first, Point second){
return 1;
}
答案 0 :(得分:3)
由于您正在使用using namespace std;
,您的编译器会抱怨std::distance函数而不是float distance(Point first, Point second);
函数,因为编译字符串中没有-std=c++11
标志。移除using namespace std;
语句,并使用std::
代替root :to => 'welcome#index'
get "/privacy" => 'welcome#privacy'
get "/help" => 'welcome#help'
resources :user_sessions
。
有关该主题的更多信息,请参阅此SO帖子:
name lookup