Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C++ implicitný konštruktor z natriedy

Mate pravdu uviedol som hlupy priklad, ktory sa prelozi a vobec z neho neni jasne co chcem docielit. Skusim iny:

#include <iostream>
#include <string>

using namespace std;

class Parent {
    wstring _text;
public:
    Parent(wstring input) : _text(input), text(_text)
    {
    }
    wstring& text;
};

class Child : public Parent {

};

void main()
{
    auto p = new Parent(L"Lorem ipsum");
    wcout << p->text << endl;
    auto c = new Child(L"Lorem ipsum"); // ocakaval som ze ked nevyplnim ziadny konstruktor prekladac automaticky doplni konstruktory z nadtriedy
    wcout << c->text << endl;
}

V childe by som chcel aby vygenerovalo implicitny konstruktor (konstruktory) ktory by sedel s tym v parentovi. Priamo to nejde otazka je ci neexistuje aspon nejaka moznost ako prekladacu naznacit nech ho okopiruje bez toho aby som to musel prepisovat. Cakal som ze bude fungovat nieco na sposob:

class Child : public Parent {
      Child = 0;
};

alebo aspon:

class Child : public Parent {
      Child(wstring input) = 0;
};

Ale nefunguje ani to.

Funguje akurat toto:

class Child : public Parent {
      Child (wstring input): Parent(input) {};
};

A ked ma trieda dajme tomu 4 - 5 konstruktorov tak je dost otravne to prepisovat a tiez to trosku ide proti principu DRY. Aj ked chapem logiku preco to treba prepisovat tak ci tak je to otrava.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny