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 + -
显示快捷键?