- Äɲ䵤줿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
- ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
Â裱²ó¤Ï¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£
¥¯¥é¥¹¡Ê¥Ç¡¼¥¿¡ÊÊÑ¿ô¡Ë¤È½èÍý¡Ê´Ø¿ô¡Ë¤ò¤Ò¤È¤Þ¤È¤Þ¤ê¤Ë¤·¤Æ¤ª¤±¤ëµ¡Ç½¡Ë¤òÄêµÁ¤¹¤ë¤³¤È¤Ç¥Ç¡¼¥¿¤È½èÍý¤Î´Ø·¸¤¬Ì©Àܤˤʤê¤Þ¤¹¡£
º£²ó¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë
&ref(instance.zip);
¥¯¥é¥¹¡Ê¥Ç¡¼¥¿¡ÊÊÑ¿ô¡Ë¤È½èÍý¡Ê´Ø¿ô¡Ë¤ò¤Ò¤È¤Þ¤È¤Þ¤ê¤Ë¤·¤Æ¤ª¤±¤ëµ¡Ç½¡Ë¤òÄêµÁ¤¹¤ë¤³¤È¤Ç
¥Ç¡¼¥¿¤È½èÍý¤Î´Ø·¸¤¬Ì©Àܤˤʤê¤Þ¤¹¡£
¥¯¥é¥¹ÊÑ¿ô¤Î¥á¥â¥ê¤ò³ÎÊݤ·¤Æ»È¤¨¤ë¾õÂ֤ˤ¹¤ë¤³¤È¤ò¥¤¥ó¥¹¥¿¥ó¥¹²½¤È¸À¤¤¤Þ¤¹¡£
ÍøÅÀ¤È¤·¤Æ¥¤¥ó¥¹¥¿¥ó¥¹Ëè¤Ë
¡¦ÊÌ¡¹¤Î¥Ç¡¼¥¿¡ÊÊÑ¿ô¡Ë
¡¦¶¦Ä̤δؿô
¤ò»ý¤Ä¤Î¤Ç¡¢Ê£À½¤ä½¤Àµ¤¬³Ú¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¯¥é¥¹¤ÎÄêµÁÎã¤òµó¤²¤Þ¤¹
class Player{
public: // public¥¡¼¥ï¡¼¥É¤Ï¥«¥×¥»¥ë²½¤ÇÀâÌÀ¤¹¤ë¡¢¤³¤³¤Ç¤Ï¤Þ¤À¤ª¤Þ¤¸¤Ê¤¤¤È»×¤Ã¤Æ¤Æ¤¯¤ì¤ì¤Ð¤¤¤¤
int m_HP; // ¥á¥ó¥ÐÊÑ¿ô
void PowerUp(int HP);¡¡ // (a)¥á¥ó¥Ð´Ø¿ôÀë¸À
void PowerDown(int Damege){ // (b)¥á¥ó¥Ð´Ø¿ô¥¤¥ó¥é¥¤¥óÄêµÁ
m_HP -= Damege;
}
}; // ¢«;˺¤ì¤º¤Ë!!
// (a)¥á¥ó¥Ð´Ø¿ôÄêµÁ¡Ê¥¯¥é¥¹Ì¾::¡Ë
void Player::PowerUp(int HP){
m_HP += HP;
}
¥¯¥é¥¹Æâ¤ÎÊÑ¿ô¤ò¥á¥ó¥ÐÊÑ¿ô¤È¸Æ¤Ó¤Þ¤¹
¥á¥ó¥Ð´Ø¿ô¤Ë´Ø¤·¤Æ¤Ï¡¢
¥¯¥é¥¹Æâ¤ÇÀë¸À¤Î¤ß¤·¡¢¼ÂÁõ¤ò¤¢¤È¤ÇÄêµÁ¤¹¤ëÊýË¡(a)¤È
¥¤¥ó¥é¥¤¥óÄêµÁ¤ÇÀë¸À¤ÈƱ»þ¤Ë½èÍý¤Þ¤Ç½ñ¤¤¤Æ¤·¤Þ¤¦ÊýË¡(b)¤¬¤¢¤ê¤Þ¤¹
ʬ³ä¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤¤Ï(a)¤Î½ñ¤Êý¤ò¤·¤Þ¤¹
¥¯¥é¥¹¤ÎÄêµÁ¤Ï¹½Â¤ÂΤÎÄêµÁ¤ÈƱ¤¸¤Ê¤Î¤Ç
¥á¥ó¥ÐÊÑ¿ô¤È¥á¥ó¥Ð´Ø¿ô¤ò»È¤¦¤Ë¤Ï¥¯¥é¥¹ÊÑ¿ô¤ò¥¤¥ó¥¹¥¿¥ó¥¹²½¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹
¥¤¥ó¥¹¥¿¥ó¥¹²½¤¹¤ë¤Ë¤Ï¼ç¤Ë¼¡¤ÎÊýË¡¤¬¤¢¤ê¤Þ¤¹
¡¥¯¥é¥¹Ì¾ ÊÑ¿ô̾;
¢¥¯¥é¥¹Ì¾ ÊÑ¿ô̾[Í×ÁÇ¿ô];
£new ¥¯¥é¥¹Ì¾(); // ()¾Êά²Ä
£new ¥¯¥é¥¹Ì¾(); ()¾Êά²Ä
¤new ¥¯¥é¥¹Ì¾[Í×ÁÇ¿ô];
Player player; // ¡
Player players[5]; // ¢
new Player(); // £
new Player[10]; // ¤
¤µ¤é¤ËÇÛÃÖnew¤È¤¤¤¦
¤¢¤é¤«¤¸¤á¼èÆÀ¤·¤Æ¤¢¤ë¥á¥â¥ê¥×¡¼¥ë¤«¤é¥¤¥ó¥¹¥¿¥ó¥¹²½¤ËɬÍפʥá¥â¥êÎΰè¤ò³ÎÊݤ¹¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
¤¢¤é¤«¤¸¤á³ÎÊݤµ¤ì¤Æ¤¤¤ëÎΰè¤òºÆ³ä¤êÅö¤Æ¤¹¤ë¤Î¤ÇÄ̾ï¤Înew¡Ê£¤ä¤¡Ë¤è¤ê¹â®¤Ç¤¹¡£
¥á¥â¥ê¥×¡¼¥ë¤¬²òÊü¤µ¤ì¤ëÊݾڤ¬¤¢¤ë¤Ê¤é¤Ðdelete¤ädelete[]¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó
¥new(¥á¥â¥ê¥×¡¼¥ë¥¢¥É¥ì¥¹) ¥¯¥é¥¹Ì¾
¦new(¥á¥â¥ê¥×¡¼¥ë¥¢¥É¥ì¥¹) ¥¯¥é¥¹Ì¾[Í×ÁÇ¿ô]
char Pool[1000]; // ¥á¥â¥ê¥×¡¼¥ë
new(Pool) Player; // ¥
new(Pool+sizeof(Player)) Player[10]; // ¦
¥¦¤Ï¤¢¤Þ¤ê»È¤¦¤³¤È¤Ï¤Ê¤¤¤È»×¤¦¤Î¤Ç¡¢¤³¤ó¤Êµ¡Ç½¤¢¤Ã¤¿¤ÊÄøÅ٤Ǥ褤¤È»×¤¤¤Þ¤¹
¤¿¤À¤·¡¢»È¤¦¤È¤¤Ï¡¢¥á¥â¥ê¥×¡¼¥ë¤Ç´û¤Ë¾¤ÎÊÑ¿ô¤¬»ÈÍѤ·¤Æ¤¤¤ëÎΰè¤òºÆ³ÎÊݤ·¤Ê¤¤¤è¤¦¤ËÃí°Õ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
°Ê²¼¤ËÁ´¥³¡¼¥ÉºÜ¤»¤Þ¤¹¡£
class¤Ï½ã¿è¤ÊC¸À¸ì(.c)¤Ç¤Ï»È¤¨¤Ê¤¤¤Î¤ÇÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤
C++¥½¡¼¥¹¥Õ¥¡¥¤¥ë³ÈÄ¥»Ò(.cpp)¤Ç(C++¥³¥ó¥Ñ¥¤¥é¤Ç)¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹
¡ÊC¸À¸ì¹ÖºÂ¤Ç½¬¤Ã¤¿¤è¤¦¤Ëºî¤ì¤ÐÊ¿µ¤¤Ç¤¹¡Ë
// main.cpp
#include <iostream> // C++Æþ½ÐÎϥإåÀ¡¼¥¤¥ó¥¯¥ë¡¼¥É
class Player
{
public: // public¥¡¼¥ï¡¼¥É¤Ï¥«¥×¥»¥ë²½¤ÇÀâÌÀ¤¹¤ë¡¢¤³¤³¤Ç¤Ï¤Þ¤À¤ª¤Þ¤¸¤Ê¤¤¤È»×¤Ã¤Æ¤Æ¤¯¤ì¤ì¤Ð¤¤¤¤
int m_HP; // ¥á¥ó¥ÐÊÑ¿ô
// ¥á¥ó¥Ð´Ø¿ô¤ÎÀë¸À
void PowerUp(int HP);
// ¥á¥ó¥Ð´Ø¿ô¤Î¥¤¥ó¥é¥¤¥óÄêµÁ
void PowerDown(int Damege)
{
m_HP -= Damege;
}
}; // ¥»¥ß¥³¥í¥ó˺¤ì¤º¤Ë!
// ¥á¥ó¥Ð´Ø¿ô¤Î¼ÂÁõ
// ¥¯¥é¥¹Ì¾::¤ÇÄêµÁ¤¹¤ë
void Player::PowerUp(int HP)
{
m_HP += HP;
}
int main()
{
Player player; // ¥¤¥ó¥¹¥¿¥ó¥¹²½
Player players[5]; // ÇÛÎ󥤥󥹥¿¥ó¥¹²½
Player* pplayer;
pplayer = new Player(); // ưŪ¥¤¥ó¥¹¥¿¥ó¥¹²½(new ¥¯¥é¥¹Ì¾)
Player* pplayers;
pplayers = new Player[10]; // ưŪÇÛÎ󥤥󥹥¿¥ó¥¹²½(new ¥¯¥é¥¹Ì¾[])
// ¥á¥ó¥Ð¤Î¥¢¥¯¥»¥¹¤Ë¤Ï( . )¤ò»È¤¦
player.m_HP = 100;
printf("player HP = %d\n",player.m_HP);
player.PowerUp(200);
printf("player HP = %d\n",player.m_HP);
player.PowerDown(50);
printf("player HP = %d\n",player.m_HP);
// ¥Ý¥¤¥ó¥¿¤Î¾ì¹ç¤Ï¥á¥ó¥Ð¤Î¥¢¥¯¥»¥¹¤Ë¤Ï¥¢¥í¡¼±é»»»Ò( -> )¤ò»È¤¦
pplayer->m_HP = 50;
printf("pplayer HP = %d\n",pplayer->m_HP);
pplayer->PowerUp(250);
printf("pplayer HP = %d\n",pplayer->m_HP);
pplayer->PowerDown(25);
printf("pplayer HP = %d\n",pplayer->m_HP);
// ÇÛÎó¤â¤¤¤Þ¤Þ¤Ç¤ÈƱÍͤ˻Ȥ¨¤ë
players[0].m_HP = 10;
printf("players[0] HP = %d\n",players[0].m_HP);
// ¥¤¥ó¥¹¥¿¥ó¥¹¤´¤È¤Ë¸ÄÊ̤Υǡ¼¥¿¤ò»ý¤Ä
delete pplayer; // new¤·¤¿¤édelete
delete[] pplayers; // new¤ÎÇÛÎó¾ì¹ç¤Ïdelete[]
char memorypool[1000] = {}; // ¥á¥â¥ê¡¼¥×¡¼¥ë
Player* placeplayer = new(memorypool) Player; // ¥á¥â¥ê¥×¡¼¥ë¤«¤éưŪ¥¤¥ó¥¹¥¿¥ó¥¹²½¡ÊÇÛÃÖnew¡Ë
placeplayer->m_HP = 150;
printf("placeplayer HP = %d\n",placeplayer->m_HP);
Player* placeplayers = new(memorypool + sizeof(Player)) Player[2];// ¥á¥â¥ê¥×¡¼¥ë¤«¤éưŪÇÛÎ󥤥󥹥¿¥ó¥¹²½¡ÊÇÛÃÖnew¡Ë
placeplayers[0].m_HP = 10;
printf("placeplayers[0] HP = %d\n",placeplayers[0].m_HP);
placeplayers[1].m_HP = 20;
printf("placeplayers[1] HP = %d\n",placeplayers[1].m_HP);
// ¥á¥â¥ê¥×¡¼¥ë¤Ï¼«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¤Î¤Ç
// placeplayer¤Ïdelete¤¹¤ëɬÍפʤ·
// placeplayers¤Ïdelete[]¤¹¤ëɬÍפʤ·
return 0;
}
½¬ÆÀ¤Ë¤Ï¼«Ê¬¤ÇŬÅö¤Ê¥¯¥é¥¹¤òÄêµÁ¤·¤Æ¥¬¥ó¥¬¥ó»È¤Ã¤Æ¤ß¤ë¤ÈÎɤ¤¤È»×¤¤¤Þ¤¹¡£
#vote(ok¡¢¼¡¹Ô¤³¡¢¼¡[0],¡Ê¡¨¡°¦Ø¡°¡Ë¡©[0])