Как сохранить объект из унаследованного класса, когда у меня не должно быть контейнеров для этого класса

#c #oop

#c #ооп

Вопрос:

Я создаю класс, который наследует другой класс и имеет конструктор, который должен иметь параметр — объект базового класса —

Мой вопрос в том, что мне делать с этим объектом, как мне сохранить его, чтобы я мог получить доступ к его атрибутам?

Я не должен создавать другие атрибуты / контейнеры, такие как list<Baseclass> name

 class TelephoneSub // Base class
{
private:
    string ts_name;
    string ts_country_code;
    double ts_tariff_plan;
    int ts_minutes_call; 
public:
TelephoneSub(const TelephoneSub amp;p) 
    {
        this->ts_name = p.ts_name;
        this->ts_country_code = p.ts_country_code;
        this->ts_tariff_plan = p.ts_tariff_plan;
        this->ts_minutes_call = p.ts_minutes_call;
    }
 

Производный класс

 class TelephoneSubData : public TelephoneSub
{
private:
    string tsd_phone_number;
    vector<TelephoneSubData>tsd_contacts;
    list<TelephoneSubData>tsd_called_numbers;
public:
    // 2.1
    TelephoneSubData() {}
    // 2.2
    TelephoneSubData(const string number,const TelephoneSub amp;sub)
    {
        this->tsd_phone_number = number;
        TelephoneSub::TelephoneSub(sub);
    }

double average_sum()const
    {
        double sum = 0;
        int i = 0;
        for (auto x : tsd_called_numbers)
        {
            i  ;
            sum  = x.get_ts_tariff_plan();
        }
        return sum / i;
    }
 

Комментарии:

1. Я думаю, вы, возможно, захотите переосмыслить этот дизайн, я бы не ожидал, что класс данных будет дочерним и, конечно же, не ожидал, что векторы / списки класса будут его членами.

2. Для меня совершенно непонятно, чего вы хотите достичь. Вам нужен доступ к каким-либо дополнительным атрибутам из `TelephoneSub` в вашем производном классе? Тогда рассмотрите возможность использования виртуальных функций.

3. У меня есть функции для записи в классе TelephoneSubData, и они требуют, чтобы я имел доступ к атрибутам со значениями из объекта в конструкторе копирования в классе TelephoneSubData — как мне получить доступ к значениям этого объекта? Потому что прямо сейчас они попадают в некоторые случайные места в памяти, поскольку я не назначил их определенному объекту, подобному этому