#include <iostream>
#include <string>
using namespace std;

class GameCharacter {
    string name;
    int life;
public:
    GameCharacter() { // コンストラクタ1
        cout << "引数無しコンストラクタを実行" << endl;
    }
    GameCharacter(string name, int life) { // コンストラクタ2
        this->name = name;
        this->life = life;
        cout << "引数ありコンストラクタを実行" << endl;
    }
    ~GameCharacter() { cout << "デストラクタを実行" << endl; }
    void setName(string name) { this->name = name; } // 名前のセッタ
    void setLife(int life) { this->life = life; } // 体力のセッタ
    string getName() { return name; } // 名前のゲッタ
    int getLife() { return life; } // 体力のゲッタ
};

int main() {
    GameCharacter player1("見習い海賊マンゴー", 300);
    GameCharacter player2;
    player2 = player1;
    cout << "player1の名前 " << player1.getName() << endl;
    cout << "player1の体力 " << player1.getLife() << endl;
    cout << "player2の名前 " << player2.getName() << endl;
    cout << "player2の体力 " << player2.getLife() << endl;

    cout << "-----------------------------" << endl;
    cout << "player1のメンバ変数を変更する" << endl;
    player1.setName("海賊王ドリアン");
    player1.setLife(5000);
    cout << "player1の名前 " << player1.getName() << endl;
    cout << "player1の体力 " << player1.getLife() << endl;
    cout << "player2の名前 " << player2.getName() << endl;
    cout << "player2の体力 " << player2.getLife() << endl;
}