gpt4 book ai didi

c++ - 重载函数、重新定义、C2371 和 C2556 C++

转载 作者:行者123 更新时间:2023-11-27 23:25:26 25 4
gpt4 key购买 nike

好的,我有 3 个文件:

definitions.h 包含

#ifndef COMPLEX_H 
#define COMPLEX_H
class Complex
{

char type; //polar or rectangular
double real; //real value
double imaginary; //imaginary value
double length; //length if polar
double angle; //angle if polar

public:
//constructors
Complex();
~Complex();
void setLength(double lgth){ length=lgth;}
void setAngle(double agl){ angle=agl;}
double topolar(double rl, double img, double lgth, double agl);
#endif

functions.cpp 其中包含

#include "Class definitions.h"
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string.h>
#include <math.h>
#include <cmath>
#include <vector>
using namespace std;

Complex::topolar(double rl, double img, double lgth, double agl)
{
real=rl;
imaginary=img;
lgth = sqrt(pow(real,2)+pow(imaginary,2));
agl = atan(imaginary/real);
Complex::setLength(lgth);
Complex::setAngle(agl);

return rl;
return img;
return lgth;
return agl;

}

主程序包含:

#include "Class definitions.h"
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string.h>
#include <cmath>
#include <vector>
using namespace std;

int main(){

vector<Complex> v;
Complex *c1;
double a,b,d=0,e=0;
c1=new Complex;
v.push_back(*c1);
v[count].topolar(a,b,d,e);

但我不断收到错误 C2371:重新定义;不同的基本类型和 C2556:重载函数仅在返回类型上有所不同

我在网上找到的所有内容都说要确保 function.cpp 文件不包含在主文件中,但由于我没有犯那个错误,所以我的想法已经用完了,尤其是看到我设置的所有其他功能以同样的方式(具有单独的定义和声明)起作用。

任何帮助都会很棒!谢谢HX

最佳答案

声明的 topolar 函数应该返回 double,但是 functions.cpp 中的定义没有这样说

Complex::topolar(double rl, double img, double lgth, double agl)
{

尝试将其更改为

double Complex::topolar(double rl, double img, double lgth, double agl)
{

关于c++ - 重载函数、重新定义、C2371 和 C2556 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9824141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com