if (polynomial1->get(0)->compareTo(polynomial2->get(0)) == 0)
{
polynomial1->get(0)->coefficient += polynomial2->get(0)->coefficient;
result->insert_tail->polynomial1->get(0);
}
Polynomial1
и Polynomial2
являются связанными списками и я добавляю полиномиальные термины вместе один узел одновременно. В моей функции compareTo, если оба члена в связанных списках == 0, я хочу получить доступ к коэффициенту и добавить коэффициент для обоих терминов вместе. Моя проблема заключается в доступе к коэффициенту. Я получаю сообщение об ошибке:обращающиеся элементы данных в LinkedList
class
Data
has no member named‘coefficient’
Но мой PolynomialTerm
класс наследует Data
. Любая помощь по доступу к коэффициенту?
class PolynomialTerm : public Data
{
public:
int coefficient;
Variable *variable;
PolynomialTerm(int coefficient, Variable *variable) :
coefficient(coefficient), variable(variable)
{ }
int compareTo(Data *other) const
{
PolynomialTerm * otherTerm = (PolynomialTerm*)other;
return variable->variableX == otherTerm->variable->variableX &&
variable->variableX == otherTerm->variable->variableX &&
variable->exponentX == otherTerm->variable->exponentX &&
variable->exponentY == otherTerm->variable->exponentY ? 0 :
variable->exponentX > otherTerm->variable->exponentX ||
variable->exponentY > otherTerm->variable->exponentY ? -1 : 1;
}
--- edit--
здесь также мой класс данных, который находится в моем файле заголовка.
class Data {
public:
virtual ~Data() {}
/**
* Returns 0 if equal to other, -1 if < other, 1 if > other
*/
virtual int compareTo(Data * other) const = 0;
/**
* Returns a string representation of the data
*/
virtual string toString() const = 0;
};
Пожалуйста, разместите определение 'Class Data'. –