⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p2846b.c

📁 linux下编程用 编译软件
💻 C
字号:
// { dg-do run  }// Shows that problem of initializing one object's secondary base from// another object via a user defined copy constructor for that base,// the pointer for the secondary vtable is not set after implicit// copying of the outer class, but rather has the pointer to the main// vtable for the secondary base left over from the user defined copy// constructor for that base.// Correct answer is B::beefy.// g++ prints A::beefy, which is wrong.  Cfront gets it right.// prms-id: 2846extern "C" int printf(const char *, ...);extern "C" void exit(int);class B;class A { public:  A(void){}  A(const A&){}  virtual void print(void) const { }  B compute(void) const;};class C {public:  C() { }  C(C& o) { }		// with it, things are wrong, without it, they're ok  virtual void beefy(void) const { printf("A::beefy\n"); exit(1); }};class B : private A, public C {public:  B(const A& x, int){}  void beefy(void) const { printf("B::beefy\n"); }};B A::compute(void) const{  B sub(*this, 1);  return sub;}int main (){  A titi;  titi.compute().beefy();  return 0;}

⌨️ 快捷键说明

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