C++ C2011“&引用;:';类别';类型重新定义问题C++;
我的代码有点小问题。我尝试了20篇文章,但没有一个解决方案奏效。也许这是另一个问题。我不知道。有人能帮我吗?我一个人过不了 rootTe.hC++ C2011“&引用;:';类别';类型重新定义问题C++;,c++,visual-c++,C++,Visual C++,我的代码有点小问题。我尝试了20篇文章,但没有一个解决方案奏效。也许这是另一个问题。我不知道。有人能帮我吗?我一个人过不了 rootTe.h #pragma once class Root { public: double a, b, c, x1, x2, x; Root(double, double, double); //inline? void roots(unsigned int); double getX1(); double getX2(); double getX(); }
#pragma once
class Root {
public:
double a, b, c, x1, x2, x;
Root(double, double, double); //inline?
void roots(unsigned int);
double getX1();
double getX2();
double getX();
};
rootTe.cpp
#include <iostream>
#include <cmath>
#include "rootException.h"
#include "rootTest.h"
class Root {
public:
double a, b, c, x1, x2, x;
Root(double a2, double b2, double c2) {
a = a2;
b = b2;
c = c2;
}
void roots(unsigned int m) {
...
}
double getX1() {
return x1;
}
double getX2() {
return x2;
}
double getX() {
return x;
}
};
#包括
#包括
#包括“rootException.h”
#包括“rootTest.h”
类根{
公众:
双a,b,c,x1,x2,x;
根部(双a2、双b2、双c2){
a=a2;
b=b2;
c=c2;
}
空根(无符号整数m){
...
}
双getX1(){
返回x1;
}
双getX2(){
返回x2;
}
双getX(){
返回x;
}
};
您正在定义类根
两次
在C++中,使用单独的声明和定义,应该使用以下剪辑:
#include "rootTest.h"
Root::Root(double a2, double b2, double c2) {
a = a2;
b = b2;
c = c2;
}
void Root::roots(unsigned int m) {
...
}
等等“我的代码有一个小问题”——你能描述一下吗?请看一本C++的教科书。像
class
和public
这样的词只出现在.h文件中,而不出现在.cpp文件中。相反,你需要像double Root::getX1()…
这样的文本,你以前是C#或Java程序员吗?当我尝试运行它时,出现了一个错误,就像你在标题中看到的那样。我尝试添加内联,在.h文件中创建Root::Root,从rootTe.cpp根初始化中删除除oot(双a2、双b2、双c2)之外的所有内容,并将初始化添加到Root::Root inside.h中……好吧,我不会撒谎。Java.s/声明/定义/
。否则它不会是一个重新定义的错误。完成!谢谢@juanIt的作品。你太棒了!我可以用“简单”的方式来做,但现在我想让它看起来,就像它应该看起来一样。谢谢。不客气,记住接受正确的答案,这样stackoverflow可以继续增长:)