This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hello,
I have always though, that given a pointer to an object, members are at (this) + (member-offset). But this cannot be true for multiple inheritance, no?
Example:
struct A { int x,y; }
struct B { int a, b, c; }
struct C : public A, public B {}
int func (B* b, B* actuallyCinstance) { return b->b + actuallyCinstance->b; }
How is the B::b member accessed, especially b->b when b is B? What is the cost of that (x86_64)?
Attachment:
pgp00000.pgp
Description: PGP signature
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |