[C++]课堂笔记20191028

演算子のオーバーロード
运算符重载
機能を定義することができる
ふつうのメンバー関数を定義、演算子の定義に変える

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string.h>

using namespace std;
class Monster
{
	char name[256];
	int hp;
public:
	Monster():hp(10) {}
	Monster(const char* P, int h = 10)
	{
		strncpy(name, P, 256);
		hp = h;
	}
	Monster Add(const Monster &m)const
	{
		Monster tmp;//一時メモリ
		//名前の合成
		strncpy(tmp.name, name, 256);
		strncat(tmp.name, m.name, 256);
		//hpの合成
		tmp.hp = hp + m.hp;
		return tmp;
	}
	void Print()
	{
		printf("名前:%s、HP%d\n,", name, hp);
	}

	Monster operator +(const Monster &m)const
	{
		Monster tmp;//一時メモリ
		//名前の合成
		strncpy(tmp.name, name, 256);
		strncat(tmp.name, m.name, 256);
		//hpの合成
		tmp.hp = hp + m.hp;
		return tmp;
	}
};

int main()
{
	Monster N("Nakagomi", 250);
	Monster T("Taiyo", 120);
	Monster NT;
	NT = N + T;
	//NT = N.Add(T);
	NT.Print();

	cin.get();
	return 0;
}

課題08 「演算子オーバーロード」
好きなクラスを作り 演算子を定義する、その機能を試すサンプルプログラムを作成する。
期限 11/11


版权声明:本文为qq_36028073原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。