Ne, to nije isto jer si ti u klasi D nasledio samo jedan ceo broj iz klase A, a ja sam dva. Mene zanima sintaksa za ono što sam pitao. Evo primera:
Code (cpp):
struct Device
{
double speed;
};
struct Printer : public Device
{
};
struct Scanner : public Device
{
};
struct Copier : public Printer, public Scanner
{
};
U klasi Device imamo atribut speed, koji u klasi Printer znači brzinu štampe, a kod uređaja Scanner brzinu skeniranja. Uređaj Copier ima obe funkcije i posebno brzinu štampe, a posebno brzinu skeniranja. Tu bi virtuelno nasleđivanje smetalo. Ovo bi se naravno moglo rešiti i bez nevirtuelnog nasleđivanja:
Code (cpp):
struct Device
{
virtual double& speed() = 0;
};
struct Printer : virtual public Device
{
double printingSpeed;
double& speed() override { return printingSpeed; }
};
struct Scanner : virtual public Device
{
double scanningSpeed;
double& speed() override { return scanningSpeed; }
};
struct Copier : public Printer, public Scanner
{
};
Međutim, mene zanima sintaksa za ono što sam pitao.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.