Â裱²ó¤Ï¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£

º£²ó¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë
&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 ¥¯¥é¥¹Ì¾[Í×ÁÇ¿ô]; 

 Player  player;  	// ­¡
 Player  players[5];	// ­¢
 new Player(); 		// ­£
 new Player[10];  	// ­¤

­£­¤¤ÏưŪ¤Ê¥á¥â¥ê³ÎÊݤȸƤФ졢¥Ò¡¼¥×Îΰè¤È¤¤¤¦Ê̤ÎÎΰ褫¤é
¥¤¥ó¥¹¥¿¥ó¥¹À¸À®¤ËɬÍפʥá¥â¥êÎΰè¤ò³ÎÊݤ·¤Þ¤¹
¥Ò¡¼¥×Îΰè¤Ë°ìÅÙ³ÎÊݤ¹¤ë¤È¡Ê¥×¥í¥°¥é¥à¤¬½ª¤ï¤Ã¤Æ¤â¡Ë¤º¤Ã¤È³ÎÊݤµ¤ì³¤±¤ë¤Î¤Ç
¥×¥í¥°¥é¥à¤Î½ªÎ»Á°¤Þ¤Ç¤Ë¤ÏÌÀ¼¨Åª¤Ë²òÊü¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹
­£¤Ç³ÎÊݤ·¤¿¾ì¹ç¡¢²òÊü¤¹¤ë¤Ë¤Ïdelete±é»»»Ò¤ò»È¤¤¤Þ¤¹
­¤¤Ç³ÎÊݤ·¤¿¾ì¹ç¡¢²òÊü¤¹¤ë¤Ë¤Ïdelete[]±é»»»Ò¤ò»È¤¤¤Þ¤¹

³ÎÊݤ·¤¿Îΰè¤Ø¤Î¥¢¥É¥ì¥¹¤¬É¬ÍפȤʤë¤Î¤Ç­£­¤¤Ï¼¡¤Î¤è¤¦¤Ë»È¤¦¤Î¤¬°ìÈÌŪ¤Ç¤¹

 Player* player = new Player();         // ­£
 Player* players = new Player[10];  	// ­¤
 
 // ½èÍý
 
 delete player;
 delete[] players;

¤³¤ÎÊÕ¤¬C++¤Î¤á¤ó¤É¤¯¤µ¤¤¤È¤³¤í¤Ê¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¡£
C++¹ÖºÂ6²ó¤ÇÀâÌÀ¤¹¤ë¡¢¥Ç¥¹¥È¥é¥¯¥¿¤ò»È¤¨¤Ð¡¢¤³¤ÎÌäÂê¤ò·Ú¸º¤Ç¤­¤Þ¤¹


¤µ¤é¤ËÇÛÃÖ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])
#vote(ok¡¢¼¡¹Ô¤³¡¢¼¡[1],¡Ê¡¨¡°¦Ø¡°¡Ë¡©[0])



¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS