/** * @file virtualBash.cpp * @brief * @author liugang * @version 1.0 * @date 2009-12-09 */ #include <iostream> using namespace std; class Point2d{ public: Point2d():_x(0),_y(0){}; protected: float _x; float _y; }; class Vertex : public virtual Point2d{ public: Vertex():next(0){}; protected: Vertex *next; }; class Point3d : public virtual Point2d{ public: Point3d():_z(0){}; protected: float _z; }; class Vertex3d : public Vertex, public Point3d { public: Vertex3d():mumble(0){}; protected: float mumble; }; int main(int argc, char* argv[]) { Point2d p2d; Vertex vx; Point3d p3d; Vertex3d v3d; Point2d *p2d1 = &p2d; Point2d *p2d2 = &vx; Point2d *p2d3 = &p3d; Point2d *p2d4 = &v3d; return 0; } /* vim: set ts=8 sw=8: */