我在使用类文件中的set函数时遇到了问题。到目前为止,我有以下几点。我正在尝试编写一个二次类,它有三个私有数据成员,可以计算二次的值和二次中的实根的数量。我没有被困在数学部分,因为我得到的set方法不会给我提供奇怪的值。当我使用main进行测试时,a、b和c的值是我在创建对象时没有输入的数字。
Quadratic.hpp
#ifndef QUADRATIC_HPP
#define QUADRATIC_HPP
class Quadratic
{
private:
double a;
double b;
double c;
public:
Quadratic();
Quadratic(double, double, double);
void setA(double);
void setB(double);
void setC(double);
double getA();
double getB();
double getC();
double valueFor(double);
int numRealRoots();
};
#endifQuadratic.cpp
#include <cmath>
#include <iostream>
Quadratic::Quadratic()
{
setA(1.0);
setB(1.0);
setC(1.0);
}
Quadratic::Quadratic(double A, double B, double C)
{
a = A;
b = B;
c = C;
}
void Quadratic::setA(double A)
{
a = A;
}
void Quadratic::setB(double B)
{
a = B;
}
void Quadratic::setC(double C)
{
c = C;
}
double Quadratic::getA()
{
return a;
}
double Quadratic::getB()
{
return b;
}
double Quadratic::getC()
{
return c;
}
double Quadratic::valueFor(double x)
{
return (a*(pow(x,2)) + b*x + c);
}
int Quadratic:: numRealRoots()
{
double discriminant = pow(b,2) - (4*a*c);
double epsilon = 0.00001;
int realRoots;
if (discriminant <= epsilon && discriminant > 0)
realRoots = 1;
else if (discriminant > epsilon)
realRoots = 2;
else
realRoots = 0;
return realRoots;
}发布于 2017-07-21 06:25:05
您的setB方法错误-它更新的是a而不是b
void Quadratic::setB(double B)
{
b = B; // Was "a = B;" in the original code
}https://stackoverflow.com/questions/45226127
复制相似问题