covariant1.c

来自「gcc-you can use this code to learn somet」· C语言 代码 · 共 40 行

C
40
字号
// PR c++/5607// Currently we don't support covariant returns that would actually require// a pointer adjustment.  We were failing to recognize this as such a case,// so were silently generating bad code.  When we do support covariant// returns properly, the expected error should go away, and the testcase// should pass execution.// { NOT YET dg-do run }class A {public:  virtual A* getThis() { return this; }};class B {int a;public:  virtual B* getThis() { return this; }};class AB : public A, public B {	// { dg-error "covariant" }public:  virtual AB* getThis() { return this; }};int main (){  AB* ab = new AB();    A* a = ab;  B* b = ab;  if (a->getThis() != a      || b->getThis() != b)    return 1;  return 0;}

⌨️ 快捷键说明

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