작성
·
144
2
using namespace std;
class Card // 나만의 클래스 카드지정, 카드는 이름과 공격력, 방어력을 갖고있다.
{
private:
string mName;
int mAttack;
int mDefence;
public:
Card(const string &name_in = "defalt", const int &attack_in = 0, const int &defence_in = 0)
: mName(name_in)
, mAttack(attack_in)
, mDefence(defence_in)
{} //초기화
int getAttack(){
return mAttack;
}
Card operator + (const Card& card2)
{
return Card(this->mName + card2.mName ,this->mAttack + card2.mAttack, this->mDefence + card2.mDefence);
} // 강의에서 배운것을 그대로 이용해 산술 연산자 오버로딩 구현..
friend ostream& operator << (ostream &out, Card &card1)
{
out << "( " << card1.mAttack << ", " << card1.mDefence << ", " << card1.mName << " )";
return out;
}
friend istream& operator >> (istream &in, Card &card1)
{
in >> card1.mName >> card1.mAttack >> card1.mDefence;
return in;
}
};
int main()
{
Card c1, c2;
Card c3 = (c1 + c2); //산술연산자 자체는 잘 실행됨
cout << c1 << c2 << c3 <<endl; // 잘됨cout << c1 + c2 << endl; // 이부분이 안되요ㅜㅜ....
of << c1 << c2 << c3 << endl;
return 0;
}