marcb@eyrie.img.uu.oz.au (Marc A. Boschma [Tau]) (11/24/90)
Help ! :-) I have the following bit of code that does not want to compile. I know that the compiler can not determine which constructor to call for the virtual base class FgBox (FgBox is a class in the Zortech C++ v2.1 flash graphics library). The problem I have is that I can not see how to tell the compiler which constructor to call for the FgBox. [ FgBox's constructors are: FgBox(fg_coord_t, fg_coord_t, fg_coord_t, fg_coord_t) and FgBox(fg_const_pbox_t) ] Here is the code: #include <fg.hpp> class GUI_View : virtual public FgBox { public: GUI_View(fg_coord_t x1, fg_coord_t y1, fg_coord_t x2, fg_coord_t y2) : (x1, y1, x2, y2) {} GUI_View(fg_const_pbox_t pbox) : (pbox) {} virtual ~GUI_View() {} // kill drawc and erasec for this class virtual void drawc(fg_const_pbox_t clip) {} virtual void erasec(fg_const_pbox_t clip) {} virtual void draw(void) { drawc(box()); /* clip to view */ } virtual void erase(void) { erasec(box()); } operator fg_const_pbox_t () { return box(); } }; #include <dlist.hpp> typedef GUI_View *GUI_View_Ptr; declare(zGDList, GUI_View_Ptr); declare(zGDLCursor, GUI_View_Ptr); typedef zGDList(GUI_View_Ptr) GUI_View_List; typedef zGDLCursor(GUI_View_Ptr) GUI_View_Cursor; class GUI_Canvas : GUI_View { protected: GUI_View_List children; public: GUI_Canvas(fg_coord_t x1, fg_coord_t y1, fg_coord_t x2, fg_coord_t y2, GUI_View* child) : GUI_View(x1, y1, x2, y2) { children.linkin(&child); } GUI_Canvas(fg_const_pbox_t pbox) : GUI_View(pbox) {} virtual ~GUI_Canvas() {} void add_view(GUI_View * GV) { children.linkin(&GV); } virtual void drawc(fg_const_pbox_t clip); virtual void erasec(fg_const_pbox_t clip); virtual void translate(fg_coord_t x, fg_coord_t y = 0); }; > Compiler error message... kanella::\cpp> ztcpp1 -ms -oC:\temp\ztc_33G.tmp gcanvas }; ^ "gcanvas.hpp", line 37 Syntax error: not found or ambiguous reference to function 'FgBox' --- errorlevel 1 Any pointers, answers etc. would be of a great help! ------------------------------------------------------------------------------ Marc A. Boschma marcb%eyrie@labtam.oz.AU Systems Development img Consultants GPO Box 3304GG Melbourne, Victoria 3000 Australia