fork download
  1. #include <iostream>
  2. #include <memory>
  3. using namespace std;
  4.  
  5. class BaseClass {
  6. };
  7.  
  8. class DerivedClass : public BaseClass {
  9. };
  10.  
  11. int main() {
  12. std::shared_ptr<BaseClass> base = make_shared<BaseClass>();
  13. std::shared_ptr<DerivedClass> derived = make_shared<DerivedClass>();
  14.  
  15. bool baseIsAnInstanceOfBaseClass = (dynamic_pointer_cast<BaseClass>(base) != NULL);
  16. bool baseIsAnInstanceOfDerivedClass = (dynamic_pointer_cast<DerivedClass>(base) != NULL);
  17. bool derivedIsAnInstanceOfBaseClass = (dynamic_pointer_cast<BaseClass>(derived) != NULL);
  18. bool derivedIsAnInstanceOfDerivedClass = (dynamic_pointer_cast<DerivedClass>(derived) != NULL);
  19.  
  20. cout << "base is an instance of BaseClass = " << baseIsAnInstanceOfBaseClass ? "true" : "false" << endl;
  21. cout << "base is an instance of DerivedClass = " << baseIsAnInstanceOfDerivedClass ? "true" : "false" << endl;
  22. cout << "derived is an instance of BaseClass = " << derivedIsAnInstanceOfBaseClass ? "true" : "false" << endl;
  23. cout << "derived is an instance of DerivedClass = " << derivedIsAnInstanceOfDerivedClass ? "true" : "false" << endl;
  24.  
  25.  
  26. return 0;
  27. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function 'int main()':
prog.cpp:12:2: error: 'shared_ptr' is not a member of 'std'
  std::shared_ptr<BaseClass> base = make_shared<BaseClass>();
  ^
prog.cpp:12:27: error: expected primary-expression before '>' token
  std::shared_ptr<BaseClass> base = make_shared<BaseClass>();
                           ^
prog.cpp:12:29: error: 'base' was not declared in this scope
  std::shared_ptr<BaseClass> base = make_shared<BaseClass>();
                             ^
prog.cpp:12:36: error: 'make_shared' was not declared in this scope
  std::shared_ptr<BaseClass> base = make_shared<BaseClass>();
                                    ^
prog.cpp:12:57: error: expected primary-expression before '>' token
  std::shared_ptr<BaseClass> base = make_shared<BaseClass>();
                                                         ^
prog.cpp:12:59: error: expected primary-expression before ')' token
  std::shared_ptr<BaseClass> base = make_shared<BaseClass>();
                                                           ^
prog.cpp:13:2: error: 'shared_ptr' is not a member of 'std'
  std::shared_ptr<DerivedClass> derived = make_shared<DerivedClass>();
  ^
prog.cpp:13:30: error: expected primary-expression before '>' token
  std::shared_ptr<DerivedClass> derived = make_shared<DerivedClass>();
                              ^
prog.cpp:13:32: error: 'derived' was not declared in this scope
  std::shared_ptr<DerivedClass> derived = make_shared<DerivedClass>();
                                ^
prog.cpp:13:66: error: expected primary-expression before '>' token
  std::shared_ptr<DerivedClass> derived = make_shared<DerivedClass>();
                                                                  ^
prog.cpp:13:68: error: expected primary-expression before ')' token
  std::shared_ptr<DerivedClass> derived = make_shared<DerivedClass>();
                                                                    ^
prog.cpp:15:38: error: 'dynamic_pointer_cast' was not declared in this scope
  bool baseIsAnInstanceOfBaseClass = (dynamic_pointer_cast<BaseClass>(base) != NULL);
                                      ^
prog.cpp:15:68: error: expected primary-expression before '>' token
  bool baseIsAnInstanceOfBaseClass = (dynamic_pointer_cast<BaseClass>(base) != NULL);
                                                                    ^
prog.cpp:16:74: error: expected primary-expression before '>' token
  bool baseIsAnInstanceOfDerivedClass = (dynamic_pointer_cast<DerivedClass>(base) != NULL);
                                                                          ^
prog.cpp:17:71: error: expected primary-expression before '>' token
  bool derivedIsAnInstanceOfBaseClass = (dynamic_pointer_cast<BaseClass>(derived) != NULL);
                                                                       ^
prog.cpp:18:77: error: expected primary-expression before '>' token
  bool derivedIsAnInstanceOfDerivedClass = (dynamic_pointer_cast<DerivedClass>(derived) != NULL);
                                                                             ^
prog.cpp:20:101: error: invalid operands of types 'const char [6]' and '<unresolved overloaded function type>' to binary 'operator<<'
  cout << "base is an instance of BaseClass = " << baseIsAnInstanceOfBaseClass ? "true" : "false" << endl;
                                                                                                     ^
prog.cpp:21:107: error: invalid operands of types 'const char [6]' and '<unresolved overloaded function type>' to binary 'operator<<'
  cout << "base is an instance of DerivedClass = " << baseIsAnInstanceOfDerivedClass ? "true" : "false" << endl;
                                                                                                           ^
prog.cpp:22:107: error: invalid operands of types 'const char [6]' and '<unresolved overloaded function type>' to binary 'operator<<'
  cout << "derived is an instance of BaseClass = " << derivedIsAnInstanceOfBaseClass ? "true" : "false" << endl;
                                                                                                           ^
prog.cpp:23:113: error: invalid operands of types 'const char [6]' and '<unresolved overloaded function type>' to binary 'operator<<'
  cout << "derived is an instance of DerivedClass = " << derivedIsAnInstanceOfDerivedClass ? "true" : "false" << endl;
                                                                                                                 ^
stdout
Standard output is empty