#include <iostream>
using std::cout;
using std::endl;
class Function
{
protected:
double x;
public:
Function(double x) {
this->x = x;
}
double GetX() {
return this->x;
}
void SetX() {
cout << "Enter x:" << endl;
std::cin >> this->x;
}
double valueIn() {
return 2 * x + 3;
}
void show() {
cout << valueIn() << endl;
}
};
class Hyperbola: public Function
{
private:
double k;
Hyperbola(double x,double k): Function(x) {
this->x = x;
if (this->x == 0) {
cout << "x can't be zero" << endl;
//тут явный вызов деструктора
}
}
double valueIn(){
return 5 / x;
}
};
int main() {
return 0;
}
У меня есть класс Function
и Hyperbola
, который наследует Function
. Поскольку формула гиперболы k / x
, то делаю проверку x == 0
и в случае, если х==0
удаляю этот объект. Как мне явно вызвать деструктор в классе?
В конструкторе класса наверное лучше всего бросить исключение
class Hyperbola: public Function
{
private:
double k;
Hyperbola(double x,double k): Function(x) {
if (this->x == 0) {
throw "x can't be zero";
}
this->x = x;
}
double valueIn(){
return 5 / x;
}
};
P.S.
кстати, а зачем вам этот код в конструкторе:
this->x = x;
если это и так происходит в родителе
: Function(x)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть родительский класс command и два дочерних - movement и rootЗаголовочный файл:
Не могу понять, как можно реализовать это (если можно, попробуйте объяснить мне, как все нужно делать):
Дана строка SВывести символ L, который встречается наибольшее число раз