编写一个类,该类封装了一元二次方程共有的属性和功能,即该类有刻画方程系数的3个成员变量以及计算实根的方法。要求:该类的所有对象共享常数项。
时间: 2023-06-05 17:48:02 浏览: 191
可以定义一个名为QuadraticEquation的类,该类包含三个成员变量a、b和c,分别表示一元二次方程的系数。同时,该类还应该包含一个静态成员变量delta,用于存储方程的判别式。在类中定义一个名为solve的静态方法,用于计算方程的实根。该方法应该先计算delta的值,然后根据delta的正负情况来判断方程的根的个数和类型,并返回根的值。在类的构造函数中,可以将常数项设置为一个静态成员变量,以实现所有对象共享常数项的功能。具体代码如下:
class QuadraticEquation {
private:
double a;
double b;
double c;
static double delta;
static double constantTerm;
public:
QuadraticEquation(double a, double b, double c) {
this->a = a;
this->b = b;
this->c = c;
constantTerm = c;
}
static double solve() {
delta = b * b - 4 * a * constantTerm;
if (delta > ) {
return (-b + sqrt(delta)) / (2 * a);
} else if (delta == ) {
return -b / (2 * a);
} else {
return ;
}
}
};
double QuadraticEquation::delta = ;
double QuadraticEquation::constantTerm = ;
在使用该类时,可以先创建一个QuadraticEquation对象,然后调用solve方法来计算方程的实根。由于所有对象共享常数项,因此可以在创建多个对象时避免重复计算常数项,提高效率。
阅读全文