编写二次公式程序时出现编译错误
Compilation errors when writing a quadratic formula program
无法编译此代码并正常工作
实现文件:
#include <cmath>
#include "quadEquation.h"
using namespace std;
QuadEquation::QuadEquation()
{
int a,b,c;
}
QuadEquation::QuadEquation(int first, int second, int third)
{
a = first;
b = second;
c = third;
}
int QuadEquation::getA()
{
return a;
}
int QuadEquation::getB()
{
return b;
}
int QuadEquation::getC()
{
return c;
}
int QuadEquation::getDiscriminant()
{
return b * b - 4 * a * c;
}
int QuadEquation::getRoot1()
{
discrim = getDiscrimant();
return -b + sqrt(discrim) / (2 * a);
}
int QuadEquation::getRoot2()
{
discrim = getDiscriminant();
return -b - sqrt(discrim) / (2 * a);
}
头文件:
#ifndef QUADEQUATION_H
#define QUADEQUATION_H
class QuadEquation
{
private:
int a, b, c;
public:
QuadEquation(int, int, int);
int getA();
int getB();
int getC();
int getDiscriminant();
int getRoot1();
int getRoot2();
};
#endif
#include <iostream>
#include "quadEquation.h"
using namespace std;
int main()
{
QuadEquation quad1(1,0,9);
cout << "The first root of the first quadratic equation is: " << quad1.getRoot1() << endl;
return 0;
}
我得到的一些错误
quadEquation.cpp:5:错误:"quadEquation::QuadEqulation()"的原型与类"quadEquation"中的任何原型都不匹配`quadEquation.h:5:错误:候选为:`quadEquation::QuadEquration(const QuadEqimation&)`quadEquation.h:10:错误:`quadEquation::QuadEquration(int,int,int)`quadEquation.cpp:在成员函数`int quadEquation::getRoot1()`中:quadEquation.cpp:35:错误:未在此作用域中声明"discim"quadEquation.cpp:35:错误:未在此作用域中声明"getDiscrimant"quadEquation.cpp:在成员函数`int quadEquation::getRoot2()`中:quadEquation.cpp:40:错误:未在此作用域中声明"discim"
您定义的构造函数之一是
QuadEquation::QuadEquation()
{
int a,b,c;
}
但是这个构造函数并没有在头文件中定义。此外,这看起来像是你的一个错误,因为这个构造函数没有多大意义——它只声明了三个局部变量,没有使用其中的任何一个。如果您确实想声明这个构造函数,请将其添加到头文件中,但从您的代码来看,我认为这没有必要。
至于你的其他错误,看看这个代码:
int QuadEquation::getRoot1()
{
discrim = getDiscrimant();
return -b + sqrt(discrim) / (2 * a);
}
我突然想到两件事。首先,discrim
在哪里声明?其次,如果二次公式可以有任意的复值根,那么返回int
有什么原因吗?有没有其他类型的可以在这里使用?
总的来说,您应该学会阅读这些编译器错误消息。我所指出的一切都可以很容易地从错误输出中收集到。既然你已经知道了问题是什么,你能看到它们是如何产生给定的编译器错误的吗?
希望这能有所帮助!
相关文章:
- C++程序错误:malloc():内存损坏
- C++ Windows 凭据提供程序错误屏幕
- 程序错误地读取了二进制文件的一个字节
- Cmake无法在qt-creater/collect2上编译简单的测试程序:错误:ld
- C 程序错误
- SDL 应用程序错误:“if”之前应为非限定 id
- C++程序错误
- Apache IGNITE编译ODBC驱动程序错误
- 二进制搜索树操作程序错误:分割故障(核心倾倒)
- Cygwin1.dll c++ 应用程序错误
- 无法编译任何C++程序;错误:未知类型名称'uint8_t'
- 带有结构和指针的程序错误(结构,C++)
- 矩阵运算C++运算符重载程序错误
- ilmerge后C /CLI应用程序错误
- SDL 2.0-无效的呈现程序错误
- 如何使用 C# 在网页 asp.net 显示 C 程序错误
- OPENCV:image_proc中的 PCA 应用程序错误
- C++程序错误 - 虚拟析构函数
- LNK2020 C 程序错误
- 程序错误,由于在VS2010中使用std::unique_ptr