목록Develop (134)
오븐 노트
#include using namespace std; class Knight { public: static void HelloKnight() { // 정적 함수는 Knight 객체랑은 연관성이 없고 위치만 안에 있음. // 특정 객체에 의존적인 정보들을 수정 할 수 없음. } // 멤버 함수 int GetHp(int, int) { cout
#include using namespace std; int Add(int a, int b) { return a + b; } int Sub(int a, int b) { return a - b; } class Item { public: Item() : _itemId(0), _rarity(0), _ownerId(0) { } public: int _itemId; // 아이템 구분을 위한 ID int _rarity; // 희귀도 int _ownerId; // 소지자 ID }; typedef bool(ITEM_SELECTOR)(Item*, int); Item* FindItem(Item items[], int itemCount, ITEM_SELECTOR* selector, int value) { for (int i..
Monster.cpp #include "Monster.h" void Monster::KillMe() { _hp = 0; } Monster.h #pragma once class Monster { public: void KillMe(); public: int _monsterId; // +0 int _hp; // +4 int _defence; // +8 // ... }; Player.cpp #include "Player.h" #include "Monster.h" void Player::KillMonster() { _target2->KillMe(); _target2->_hp = 0; // 위를 풀어쓰면 아래 // [ 주소 ] -> [ [monsterId] [hp] [defence] ] (*_target2)._h..
Creature ㄴ Creature.cpp #include "Creature.h" void Creature::OnAttacked(Creature* attacker) { int damage = attacker->_attack - _defence; if (damage < 0) damage = 0; _hp -= damage; if (_hp < 0) _hp = 0; } Creature ㄴ Creature.h #pragma once enum CreatureType { CT_PLAYER = 0, CT_MONSTER = 1 }; class Creature { public: Creature(int creatureType) : _creatureType(creatureType), _hp(0), _attack(0), _de..
#include using namespace std; // 캐스팅 (타입 변환) // 면접 단골 질문 // 구시대적 C 스타일의 캐스팅은 버려야함 // ex) (int) x / static_cast o class Player { public: virtual ~Player() { } }; class Knight : public Player { public: }; class Archer : public Player { public: }; class Dog { }; // 1) static_cast -> 사용 빈도 제일 높음 // 2) dtnamic_cast -> 두번째로 빈도 높음 // 3) const_cast -> 거의 사용하지 않지만 면접용으로라도 알아두기 // 4) reinterpret_cast -> 사..
#include using namespace std; class Pet { public: Pet() { cout
#include using namespace std; class Knight { public: int _hp = 0; }; class Item { public: Item() { cout