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

º£²ó¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë
fileinstance.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;
}

½¬ÆÀ¤Ë¤Ï¼«Ê¬¤ÇŬÅö¤Ê¥¯¥é¥¹¤òÄêµÁ¤·¤Æ¥¬¥ó¥¬¥ó»È¤Ã¤Æ¤ß¤ë¤ÈÎɤ¤¤È»×¤¤¤Þ¤¹¡£

ÁªÂò»è Åêɼ
ok¡¢¼¡¹Ô¤³¡¢¼¡ 1  
¡Ê¡¨¡°¦Ø¡°¡Ë¡© 0  

źÉÕ¥Õ¥¡¥¤¥ë: fileinstance.zip 338·ï [¾ÜºÙ]

¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ¥Ð¥Ã¥¯¥¢¥Ã¥× źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2016-02-13 (ÅÚ) 22:48:33