我可以用多个结构作为C++中函数的参数吗? 我用C++类介绍了OOP,介绍了结构。老师希望我们创建一个结构点,它将是一个点的x和y坐标,然后使用这些来做各种事情。 例如,她想要的是dist–此函数将接收两个点,并计算并返回点之间的距离。 但是,每当我尝试将点传递到函数中时,都会出现错误

我可以用多个结构作为C++中函数的参数吗? 我用C++类介绍了OOP,介绍了结构。老师希望我们创建一个结构点,它将是一个点的x和y坐标,然后使用这些来做各种事情。 例如,她想要的是dist–此函数将接收两个点,并计算并返回点之间的距离。 但是,每当我尝试将点传递到函数中时,都会出现错误,c++,function,structure,C++,Function,Structure,例如,如果我初始化 float dist(Point a); 定义 float dist(Point a){ return 1; } 我没有错,但如果我说 float dist(Point a, Point b); float dist(Point a, Point b){ return 1; } 错误会将我弹出到另一个屏幕并突出显示该行 难道我不能以这种方式通过两个结构,还是我只是误读了她的指示 提前谢谢 编辑:这是请求的不起作用的完整代码 #include <iostream&g

例如,如果我初始化

float dist(Point a);
定义

float dist(Point a){
return 1;
}
我没有错,但如果我说

float dist(Point a, Point b);
float dist(Point a, Point b){
return 1;
}
错误会将我弹出到另一个屏幕并突出显示该行

难道我不能以这种方式通过两个结构,还是我只是误读了她的指示

提前谢谢

编辑:这是请求的不起作用的完整代码

#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;
}
因为您使用的是名称空间std;编译器抱怨的是函数,而不是浮点距离第一点,第二点;函数,因为编译字符串中没有-std=c++11标志。删除使用std的名称空间;语句,并将其与std::一起使用

有关该主题的更多信息,请参阅本SO帖子:

您是否正在使用命名空间std;?如果是,我可以用多个结构作为C++中函数的参数吗?对请回答下一个问题。您显示的代码很好;可能错误来自其他地方。这篇文章演示了这个问题。错误消息是一个秘密吗?我已经添加了完整的非工作代码。这个OOP类中的所有内容都使用了namespace std。因此,本质上我重载了namespace std中的函数距离,它允许我在只有一个参数时使用我的,但在有两个参数时使用它们的。我把函数名改为dist,它工作得很好。很高兴知道名称空间std是一种糟糕的形式,我假设老师让我们轻松地使用它。@DanielKunkler你没有让它过载。您将整个std名称空间引入了当前范围,因此产生了混乱。避免这种做法,因为这是一种不好的做法。
#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;
}