チュートリアル的な記述5
クラス、構造体
// class デフォルトのアクセス指定子がprivate // struct デフォルトのアクセウ指定子がpublic struct Animal; struct Man2; struct Animal { int age = 10; virtual void attack(); }; struct Man2 : Animal { typedef std:: shared_ptr<std::string> string_ptr; string_ptr name_ptr; Man2(std::string name); ~Man2(); static void staticFunc(); void hello(); void func1() &; // void func1() &&; // 右辺値参照の際 void constFunction() const; }; Man2::Man2(std::string name) { this->name_ptr = std::make_shared<std::string>(name); } Man2::~Man2() { } void Man2::staticFunc() { std::cout << "staticFunc" << std::endl; } void Man2::hello() { std::cout << "hello" << std::endl; } void Man2::func1() & { std::cout << "func1 &" << std::endl; } void Man2::func1() && { std::cout << "func1 &&" << std::endl; } void Man2::Animal::attack() { std::cout << "attack" << std::endl; } void useMan2() { auto man2 = new Man2("aaa"); int a = man2->age; Man2::staticFunc(); man2->staticFunc(); man2->hello(); man2->func1(); Man2("cddd").func1(); }