R
Robert Swan
Given:
struct a {
int db;
};
class b: public a{};
class c: public a{};
struct d: public b, public c {
int& dbb() {return b::db;}
int& dbc() {return c::db;}
};
class e: public d{};
class f: public d{};
class g: public d{};
class h:
public e,
public f,
public g {
void fine();
void not_fine();
};
I'd like to know why g++ accepts
void h::fine() {
e::dbb() = 1;
f::dbc() = 2;
}
but says that 'a' is an ambiguous base in
void h::not_fine() {
e::b::db = 1;
f::c::db = 1;
}
Thanks,
Robert
struct a {
int db;
};
class b: public a{};
class c: public a{};
struct d: public b, public c {
int& dbb() {return b::db;}
int& dbc() {return c::db;}
};
class e: public d{};
class f: public d{};
class g: public d{};
class h:
public e,
public f,
public g {
void fine();
void not_fine();
};
I'd like to know why g++ accepts
void h::fine() {
e::dbb() = 1;
f::dbc() = 2;
}
but says that 'a' is an ambiguous base in
void h::not_fine() {
e::b::db = 1;
f::c::db = 1;
}
Thanks,
Robert