overload33.c

来自「this is a gcc file, you can download it 」· C语言 代码 · 共 79 行

C
79
字号
// PRMS ID: 7507// Build don't link:/* ------------------------------------------------------------ */class Base0{public:				Base0() {}      virtual			~Base0() {}};class Base1{public:				Base1() {}    virtual			~Base1() {}};class Derived : public Base0, public Base1{public:				Derived() {}  virtual			~Derived() {}};/* ------------------------------------------------------------ */class Dummy{  public:				Dummy(Base0 * theBase) {}				~Dummy() {}};/* ------------------------------------------------------------ */template<class T>class ConstSmartPtr{  T*			myItem;		// private  public:				ConstSmartPtr(T const* theItem);			operator T const*() const				{ return myItem; }  protected:    T*			_item() const				{ return myItem; }};template<class T>class SmartPtr : public ConstSmartPtr<T>{  public:			SmartPtr(T* theItem)			  : ConstSmartPtr<T>(theItem) {}    T*			item() const				{ return _item(); }			operator T*() const				{ return _item(); }};/* ------------------------------------------------------------ */voidfunction(){  SmartPtr<Derived>  myObj = new Derived();  Dummy th1(myObj);		    // Doesn't work under Cygnus  Dummy th2((Base0 *) myObj);	    // Doesn't work either}/* ------------------------------------------------------------ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?