Â裱²ó¤Ï¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£ º£²ó¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë ¥¯¥é¥¹¡Ê¥Ç¡¼¥¿¡ÊÊÑ¿ô¡Ë¤È½èÍý¡Ê´Ø¿ô¡Ë¤ò¤Ò¤È¤Þ¤È¤Þ¤ê¤Ë¤·¤Æ¤ª¤±¤ëµ¡Ç½¡Ë¤òÄêµÁ¤¹¤ë¤³¤È¤Ç ÍøÅÀ¤È¤·¤Æ¥¤¥ó¥¹¥¿¥ó¥¹Ëè¤Ë ¥¯¥é¥¹¤ÎÄêµÁÎã¤òµó¤²¤Þ¤¹ 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; } ¥¯¥é¥¹Æâ¤ÎÊÑ¿ô¤ò¥á¥ó¥ÐÊÑ¿ô¤È¸Æ¤Ó¤Þ¤¹ ¥¯¥é¥¹¤ÎÄêµÁ¤Ï¹½Â¤ÂΤÎÄêµÁ¤ÈƱ¤¸¤Ê¤Î¤Ç ¥¤¥ó¥¹¥¿¥ó¥¹²½¤¹¤ë¤Ë¤Ï¼ç¤Ë¼¡¤ÎÊýË¡¤¬¤¢¤ê¤Þ¤¹ Player player; // ¡ Player players[5]; // ¢ new Player(); // £ new Player[10]; // ¤ £¤¤ÏưŪ¤Ê¥á¥â¥ê³ÎÊݤȸƤФ졢¥Ò¡¼¥×Îΰè¤È¤¤¤¦Ê̤ÎÎΰ褫¤é ³ÎÊݤ·¤¿Îΰè¤Ø¤Î¥¢¥É¥ì¥¹¤¬É¬ÍפȤʤë¤Î¤Ç£¤¤Ï¼¡¤Î¤è¤¦¤Ë»È¤¦¤Î¤¬°ìÈÌŪ¤Ç¤¹ Player* player = new Player(); // £ Player* players = new Player[10]; // ¤ // ½èÍý delete player; delete[] players; ¤³¤ÎÊÕ¤¬C++¤Î¤á¤ó¤É¤¯¤µ¤¤¤È¤³¤í¤Ê¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤µ¤é¤ËÇÛÃÖnew¤È¤¤¤¦ char Pool[1000]; // ¥á¥â¥ê¥×¡¼¥ë new(Pool) Player; // ¥ new(Pool+sizeof(Player)) Player[10]; // ¦ ¥¦¤Ï¤¢¤Þ¤ê»È¤¦¤³¤È¤Ï¤Ê¤¤¤È»×¤¦¤Î¤Ç¡¢¤³¤ó¤Êµ¡Ç½¤¢¤Ã¤¿¤ÊÄøÅ٤Ǥ褤¤È»×¤¤¤Þ¤¹ °Ê²¼¤ËÁ´¥³¡¼¥ÉºÜ¤»¤Þ¤¹¡£ // 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; } ½¬ÆÀ¤Ë¤Ï¼«Ê¬¤ÇŬÅö¤Ê¥¯¥é¥¹¤òÄêµÁ¤·¤Æ¥¬¥ó¥¬¥ó»È¤Ã¤Æ¤ß¤ë¤ÈÎɤ¤¤È»×¤¤¤Þ¤¹¡£ |