fork download
  1. #include <cassert>
  2.  
  3. struct A {
  4. virtual ~A() = default;
  5. };
  6.  
  7. struct B : public A {
  8. virtual ~B() = default;
  9. };
  10.  
  11. struct C {
  12. virtual ~C() = default;
  13. };
  14.  
  15. struct a1 : public B, public C {
  16. a1() = default;
  17. virtual ~a1() = default;
  18.  
  19. }; // indirect inheritance of A
  20.  
  21. int main() {
  22. a1 a;
  23.  
  24. C* c = &a;
  25.  
  26. assert(dynamic_cast<A*>(c) != nullptr);
  27.  
  28. return 0;
  29. }
Success #stdin #stdout 0s 4180KB
stdin
Standard input is empty
stdout
Standard output is empty