p16146.c

来自「用于进行gcc测试」· C语言 代码 · 共 91 行

C
91
字号
// { dg-do run  }// prms-id: 16146extern "C" int printf (const char *, ...);class myFoundation {protected:  myFoundation () { count = 0; }  virtual ~myFoundation () {}public:  void addRef () { ++count; }  void removeRef () { if (count > 0) --count; }private:  long count;};class firstIntermediate :virtual public myFoundation {public:  firstIntermediate () {}  ~firstIntermediate () {}  void bar () { printf ("Bar\n"); }};class firstBase	:  public firstIntermediate {public:  firstBase () {}  ~firstBase () {}  virtual void g () {}};class secondIntermediate : virtual public myFoundation {public:  secondIntermediate () {}  ~secondIntermediate () {}  virtual void h () {}};class secondBase : public secondIntermediate {public:  secondBase () {}  ~secondBase () {}  virtual void h () {}};class typeInterface : virtual public firstBase {public:  typeInterface () {}  ~typeInterface () {}  virtual void i () {}};class classServices : virtual public firstBase,		      public secondBase {public:  classServices () {}  ~classServices () {}  virtual void j () {}};class classImplementation : public typeInterface,			    public classServices {public:  classImplementation () {}  ~classImplementation () {}  void g () {}  void h () {}  void i () {}  void j () {}};int main () {  firstBase* fbp = new classImplementation;  classImplementation* cip = dynamic_cast <classImplementation*> (fbp);  cip->addRef();  myFoundation* mfp = cip;}

⌨️ 快捷键说明

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