Как изменять объекты в подклассе напрямую C++

Рейтинг: -2Ответов: 1Опубликовано: 28.01.2023
#include <iostream>

class Object
{
public:
    short type;
    Object(short t) :type(t) {}
};

class Cube : public Object
{
public:
    Cube() :Object(1) {}; //изменение через конструктор
};

int main()
{
    Cube c = Cube();
    std::cout << c.type;
    return 0;
}

В коде выше я объявляю класс Object и его подкласс Cube. В Cube я инициализирую объект short type (он объявлен в Object) через конструктор. У меня появился вопрос по нахождению способа более простого инициализации и изменения объектов. Возможно надо поработать с полями доступа.

Ответы

▲ -1Принят
#include <iostream>
using std::string;

class Object
{
public:
    short data;
};

class Cube : public Object
{
public:
    Cube() { data = 0; }
    void Func() { data = 1; }
};

int main()
{
    Cube c;
    string input;
    while (input != "end")
    {
        std::cin >> input;
        if(input == "PRINT") std::cout << "C's data is:" << c.data << std::endl;
        if (input == "EDIT") c.Func();
    }
    return 0;
}

Необходимо изменять объекты с помощью функций подкласса.

Спасибо всем кто помог с вопросом. P.S. итоговый ответ написал Harry (https://ru.stackoverflow.com/users/195342/harry), на первом вопросе (Проблема с использованием объектов в подклассе C++), спасибо ему огромное!