Информация об изменениях

Сообщение Re: Можно через protected/private наследование от структур с от 06.06.2022 6:20

Изменено 06.06.2022 6:38 Sm0ke

Re: Можно через protected/private наследование от структур со свойствами по груп
Здравствуйте, Marty

// Группируем свойства по базовым структурам.

struct props_public {
    int m1 = 11, m2 = 12, m3 = 13;
};

struct props_protected {
    int m4 = 14, m5 = 15, m6 = 16;
};

struct props_private {
    int m7 = 17, m8 = 18, m9 = 19;
};

// Вспоминаем, что есть не только public наследование.

class my_class :
    public props_public,
    protected props_protected,
    private props_private
{
public:
    my_class(
        const props_public & p_pub = {},
            const props_protected & p_prot = {},
            const props_private & p_priv = {}
    ) : props_public(p_pub), props_protected(p_prot), props_private(p_priv) {}
};


Тут есть преимущество, что дефолтные значения свойств не надо дублировать и в конструкторе тоже.
Re: Можно через protected/private наследование от структур с
Здравствуйте, Marty

// Группируем свойства по базовым структурам.

struct props_public {
    int m1 = 11, m2 = 12, m3 = 13;
};

struct props_protected {
    int m4 = 14, m5 = 15, m6 = 16;
};

struct props_private {
    int m7 = 17, m8 = 18, m9 = 19;
};

// Вспоминаем, что есть не только public наследование.

class my_class :
    public props_public,
    protected props_protected,
    private props_private
{
public:
    my_class(
        const props_public & p_pub = {},
            const props_protected & p_prot = {},
            const props_private & p_priv = {}
    ) : props_public(p_pub), props_protected(p_prot), props_private(p_priv) {}
};

int main() {
    my_class({1}, {4}, {7});
    return 0;
}


Тут есть преимущество, что дефолтные значения свойств не надо дублировать и в конструкторе тоже.