Необработанное исключение по адресу 0x00007FF676AAFBBF

Рейтинг: 0Ответов: 1Опубликовано: 07.06.2023
#include "Header.h"

class Data :public Base
{
public:
    Data() = default;
    virtual ~Data() = default;
    int getmegabytes() const { return megabytes; }
    double getaddmegabytesPrice() const { return addmegabytesPrice; }


    virtual void print(std::ostream&) const;
    virtual void read(std::istream&);

    friend std::ostream& operator<<(std::ostream&, std::shared_ptr<Voice>);
    friend std::istream& operator>>(std::istream&, std::shared_ptr<Voice>);
private:
    int megabytes;
    double addmegabytesPrice;
};

void Data::print(std::ostream& out) const
{   
    this->Data::print(out);
    out << "mb: " << megabytes << " 3123: " << addmegabytesPrice << "\n";
}
void Data::read(std::istream& in)
{
    this->Data::read(in);
    in >> megabytes >> addmegabytesPrice;
}

конкретно ругается на это:

void Data::read(std::istream& in)
{
    this->Data::read(in);
    in >> megabytes >> addmegabytesPrice;
}

Ответы

▲ 3

конкретно ругается на это:

Не знаю, что хотелось этим сказать, но если не полениться и прошагать эту функцию в отладчике, станет очевидно, что она впадает в бесконечную рекурсию, и это приводит к исчерпанию стека. Скорее всего, вот эта строчка лишняя:

this->Data::read(in);