ºÇ¶á¹¹¿·¤·¤¿¥Ú¡¼¥¸
2013-10-20
2013-09-29
2013-09-23
2012-01-07
2011-11-09
2011-10-23
2011-10-09
2011-10-01
2011-09-29
2011-09-03
2011-08-07
2011-08-02
2011-07-29
2011-07-10
2011-05-05
2011-05-04
2011-04-24
2011-04-13
2011-04-05
2011-03-26
2011-02-18
2011-02-15
2010-12-26
2010-12-07
2010-12-05
2010-11-23
2010-09-28
2010-09-23
2010-08-26
2010-08-22
2010-07-16
2010-01-17
2010-01-11
2009-10-04
2009-08-21
2009-08-13
2009-06-18
2009-06-01
2009-04-29
2009-02-16
2009-02-11
2009-02-03
2008-07-22
2008-07-21
2008-07-15
2008-07-14
2008-07-13
2008-07-12
2008-07-08
2008-07-05
2008-06-28
2008-06-17
2008-06-05
2008-06-02
2008-06-01
2008-05-29
2008-05-26
2008-05-21
2008-05-19
2008-05-18
2007-10-31
2007-10-27
2007-09-28
2007-09-23
2007-09-17
2007-09-16
2007-09-14
2007-09-11
2007-06-18
2007-04-15
2006-12-21
2006-11-30
2006-11-22
2006-08-17
2006-03-29
2006-03-28
2006-03-27

C/C++ ¥¯¥é¥¹(Class)


¥¯¥é¥¹¤È¤Ï¡©

¡¡C¸À¸ì¤Ë¤Ï¡¢¥¯¥é¥¹¤Ï̵¤¤¤¬¡¢¹½Â¤ÂΤ¬¤¢¤ë¡£C++ ¤Î¥¯¥é¥¹(Class) ¤Ï¡¢C¸À¸ì¤Î¹½Â¤ÂΤشؿô¤ò´Þ¤á¤ë¤³¤È¤¬½ÐÍè¤ëÆüì¤Ê¹½Â¤ÂΤȸ«¤ë¤³¤È¤â½ÐÍè¤ë¡£

¡¡vb2005 ¤È¤« java Åù¤Ç¤Ï¥Õ¥Ä¡¼¡Ê²¿µ¤¤Ê¤¯¡Ë¤Ë½Ð¤Æ¤¯¤ë¸ÀÍդʤΤǡ¢°Õ¼±¤»¤º¤Ë»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤â¿¡¹¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¸½ºß¤Î¹âµé¸À¸ì¤Ç¤Ï¡¢¥×¥í¥·¡¼¥¸¥ã¤ò¼è¤ê´¬¤¯ wrapper ¤È¤·¤Æɬ¤º¡Ê¤È¤¤¤Ã¤Æ¤â¡©¡Ë¤³¤Î¸ÀÍդˤªÌܤ˳ݤ«¤ë¤¬¡¢°Õ¼±¤·¤¿¤³¤È¤Ï¤Ê¤«¤Ã¤¿¡£¡Ê°Õ¼±¤·¤Ê¤¯¤Æ¤âº¤¤é¤Ê¤«¤Ã¤¿...¡©¡Ë

¡¡C++ ¤Ç Class ¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢ÁêÅö°Õ¼±¤¹¤ëɬÍפ¬¤¢¤ë¤è¤¦¤Ê¤Î¤ÇÃí°Õ¡£

C++ ¤Î¥¯¥é¥¹

¡¡¼ÂºÝ¤Ë¤Ï¡¢C¸À¸ì¹½Â¤ÂΤò³ÈÄ¥¤·¤¿Êª¡¢Ëô¤Ï¡¢C++ ¤Ë¤ª¤¤¤Æ¤Î¹½Â¤ÂÎ¤Ï Class ¤Îµ¡Ç½¤òÀ©¸Â¤·¤¿¤è¤¦¤Ê»È¤¤Êý¡Ê¤Á¤ç¤Ã¤È°ã¤¦¤¬...¡Ë¤È¤¤¤¨¤ë¡£

¢¨ÆâÍÆÈóÊݾÚ:Operater Overload ¤ÇɬÍפËÇ÷¤é¤ì¤¿ºÇÄã¸Â¤Î Class ¤Î³Ð¤¨½ñ¤­¤Ç¤¢¤ë¡£

¥³¥ó¥¹¥È¥é¥¯¥¿¡¦¥Ç¥¹¥È¥é¥¯¥¿

¡¡¥¯¥é¥¹¤ò»È¤¤¤³¤Ê¤¹¤Ë¤Ï¡¢¥³¥ó¥¹¥È¥é¥¯¥¿¤È¥Ç¥¹¥È¥é¥¯¥¿¤ÎÃ챤âɬÍפȤʤ뤬º£²ó¤Ï¤½¤³¤Þ¤ÇɬÍפȤ·¤Ê¤¤¤È»×¤¦¤Î¤Ç¼è¤ê¹ç¤¨¤º³ä°¦¡£

¢¨Æ°ÅªÇÛÎó(new delete)¤ò¥¯¥é¥¹Æâ¤Ç»ÈÍѤ¹¤ë¾ì¹çɬ¿Ü¡£
¢¨¥á¥â¥ê¤ò³ÎÊÝ(¥¤¥ó¥¹¥¿¥ó¥¹À¸À®)¤·¤¿¤Ê¤é¡¢³«Êü¤¬É¬¿Ü¡£¥³¥ó¥¹¥È¥é¥¯¥¿¡¢¥Ç¥¹¥È¥é¥¯¥¿¤Ï¤³¤ì¤é¤ò¼«Æ°¤Ç¹Ô¤Ã¤Æ¤¯¤ì¤ë¤â¤Î...¤È¸À¤¦¤³¤È¤Ë¤Ê¤ë¡£
¢¨¼«Æ°¤È¸À¤Ã¤Æ¤â win32 ¤Ç garbage collection ¤¬Æ°¤¯Ìõ¤â¤Ê¤¤¡£Îΰè¤ò³ÎÊݤ·¤¿¥×¥í¥·¡¼¥¸¥ã¾ÃÌǤ˹礻³«Êü¤ò¤ª¤³¤Ê¤¦¤È¸À¤¦¤³¤È¤Ç¤¢¤ë¡£
¢¨STL ¤Ï¡¢¥Æ¥ó¥×¥ì¡¼¥È¤ò¿ÍѤ·¤¿¡Ö¥¯¥é¥¹¡×¤È¤è¤¯¸À¤ï¤ì¡¢¥¯¥é¥¹¤ò¶Ë¤á¤ì¤Ð¡¢STL ¤Î¤è¤ê¿¼¤¤Íý²ò¤¬²Äǽ¤Ë¤Ê¤ë¤È»×¤¦¡£¥¯¥é¥¹Æâ¤Ç STL ¤ò»È¤¦Ê¬¤Ë¤Ï¡¢STL ¦¤¬¤ä¤Ã¤Æ¤¯¤ì¤ë¡Ê...¤È»×¤¦...¡Ë¤Î¤Ç¿ʬµ¤¤Ë¤·¤Ê¤¯¤ÆÎɤ¤¡£¡Ê¢¨ÈóÊݾڡË

¥³¥ó¥¹¥È¥é¥¯¥¿¡¢¥Ç¥¹¥È¥é¥¯¥¿
¢¨new, delete ¤Ê¤É¡¢Æ°Åª¥á¥â¥ê³ÎÊÝ»þ¤Ëɬ¿Ü¡£¤½¤Î¾¤Î¾ì¹çɬ¤º¤·¤âɬ¿Ü¤Ç¤Ï¤Ê¤¤¡£
class Meibo {
   int age; string name;    // age=15 or age(15) Åù err
public:
   // ¥³¥ó¥¹¥È¥é¥¯¥¿¡¦¥Ç¥¹¥È¥é¥¯¥¿
   Meibo();                 // ¥³¥ó¥¹¥È¥é¥¯¥¿(½é´ü²½)
   Meibo(const Meibo &);    // ¥³¥Ô¡¼¥³¥ó¥¹¥È¥é¥¯¥¿(½é´ü²½)
   ~Meibo();                // ¥Ç¥¹¥È¥é¥¯¥¿(½ªÎ»½èÍý)
   // ¤½¤Î¾¤Î¥á¥ó¥Ð´Ø¿ô
   void SetData(int, string);
   void ShowData();
};
void main() {
   Meibo MyClass;              // ¥³¥ó¥¹¥È¥é¥¯¥¿¸Æ½Ð¡¡
   // MyClass.SetData(13,"Kinomoto Sakura");
   MyClass.ShowData();
   Meibo MyClass2 = MyClass;   // ¥³¥Ô¡¼¥³¥ó¥¹¥È¥é¥¯¥¿¸Æ½Ð
   MyClass2.ShowData();
}                              // ¥Ç¥¹¥È¥é¥¯¥¿¼Â¹Ô

Meibo::Meibo() {               // ½é´ü²½ÄêµÁ¡§½é´ü²½»Ò¡¢½é´ü²½¥ê¥¹¥È
   cout << "¥³¥ó¥¹¥È¥é¥¯¥¿¼Â¹Ô" << endl;
   age = 12; name = "non";     // Ê̤˶õ {} ¤Ç¤âÎɤ¤
}
Meibo::Meibo(const Meibo& obj) {
   cout << "¥³¥Ô¡¼¥³¥ó¥¹¥È¥é¥¯¥¿¼Â¹Ô" << endl;
   age = 10; name = "No Name"; // ¶õ¤Ê¤éÉÔÄêÃͤǽé´ü²½?
}
Meibo::~Meibo() {              // ½ªÎ»½èÍý¤òµ­½Ò
   cout << "¥Ç¥¹¥È¥é¥¯¥¿¼Â¹Ô" << endl;  
}
void Meibo::SetData(int in_age, string in_name) {
   age = in_age; name = in_name;
}
void Meibo::ShowData() {
   cout << age  << "" << name << endl;
}
¢¨¤³¤Î¤è¤¦¤Ë¤¹¤ë¤È¡¢½é´ü²½¤µ¤ì¤¿ÃÍ¡¢12 non ¤¬É½¼¨¤µ¤ì¤ë¡£
¢¨Ìµ¤¯¤Æ¤â¼«Æ°¤ÇÊä´°¤µ¤ì¤ë¤¬¡¢Æþ¤ì¤Æ¤ª¤¯Êʤò¤Ä¤±¤Æ¤ª¤¯¤È¸å¤ÇÍý²ò¤¬¤·¤ä¤¹¤¤¤«¤â¡©¡Ê¿ʬ¡Ë
¢¨My ¤Ï VB ¤ÎÊØÍøµ¡Ç½¤Ë Ʊ̾¥­¡¼¥ï¡¼¥É¤¬¤¢¤Ã¤¿µ¤¤¬¤¹¤ë...¤¬¡¢Á´¤¯´ØÏ¢¤Ê¤¯»È¤Ã¤¿Ì¾¾Î¡£
¢¨¤Á¤Ê¤ß¤Ë¡¢¥³¥ó¥¹¥È¥é¥¯¥¿¤ò»È¤ï¤º¥¯¥é¥¹¤Î private ÊÑ¿ô¤ØľÀܽé´üÃͤòÀßÄê (int age = 15; ¤È¤«) ¤¹¤ë¤È¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤¬½Ð¤ë¡£

ɽ¼¨¥µ¥ó¥×¥ë
¥³¥ó¥¹¥È¥é¥¯¥¿¼Â¹Ô        // MyClass ¤Î¥³¥ó¥¹¥È¥é¥¯¥¿
12 non
¥³¥Ô¡¼¥³¥ó¥¹¥È¥é¥¯¥¿¼Â¹Ô   // MyClass2 ¤Î¥³¥Ô¡¼¥³¥ó¥¹¥È¥é¥¯¥¿
10 No Name
¥Ç¥¹¥È¥é¥¯¥¿¼Â¹Ô          // ¿ʬ MyClass2 ¤Î¥Ç¥¹¥È¥é¥¯¥¿
¥Ç¥¹¥È¥é¥¯¥¿¼Â¹Ô          // ¿ʬ MyClass ¤Î¥Ç¥¹¥È¥é¥¯¥¿
³¹Ô¤¹¤ë¤Ë¤Ï²¿¤«¥­¡¼¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤ . . .

¢¥¾å¤Ø [ ÊÔ½¸ ]

¥¯¥é¥¹¤ò¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ»È¤¦

¡¡¥¯¥é¥¹¤ÎÆÃħ¤È¤·¤ÆÆâÉôÊÑ¿ô¤Ê¤É¤ò±£Ê乤뵡ǽ¤¬¤¢¤ë¡£Íפ¹¤ë¤Ë¥Ö¥é¥Ã¥¯¥Ü¥Ã¥¯¥¹¤Î¤è¤¦¤Ê°ìÏ¢¤Îµ¡Ç½¤ò»ý¤Ã¤¿´Ø¿ô(Class)¤òºî¤ë¤³¤È¤¬½ÐÍè¤ë¡£

¡¡Î㤨¤Ð»þ·×(Class)¤Ï¡¢­¡»þ¤ò¹ï¤à¡¢­¢ÌܳФޤ·¤ò¥»¥Ã¥È¤¹¤ë¡¢­£ÌܳФޤ·¤¬ÌĤ롢­¤ÌܳФޤ·¤ò»ß¤á¤ë¡¢­¥»þ´Ö¤ò½¤Àµ¤¹¤ë... ¤È¸À¤Ã¤¿µ¡Ç½¤ò¥ª¥Ö¥¸¥§¥¯¥È(»þ·×Class)¤Ë»ý¤¿¤»¡¢³°Éô¤«¤é­¢¡¢­¤¡¢­¥¤Î¤è¤¦¤ÊÁàºî¤¬½ÐÍè(¥ª¥Ö¥¸¥§¥¯¥ÈÁàºî)¤Æ¡¢ÆâÉô¤Ç¤Ï­¡¡¢­£¤ÎÍͤʵ¡Ç½¤¬Æ¯¤¤¤Æ¤¤¤ë...¤È¤¤¤¦¤³¤È¤ò¥×¥í¥°¥é¥à¤¹¤ë¤Î¤ËŬ¤·¤Æ¤¤¤ë¤Î¤¬¡¢¥¯¥é¥¹¤È¸Æ¤Ð¤ì¤ë¤â¤Î¡£°ìÈÌŪ¤Ë¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤È¸Æ¤Ð¤ì¤ë¡£

¡¡¤µ¤é¤Ë¡¢ÆâÉôŪ¤ÊÁàºî¤Ï½àÈ÷ºÑ¤ß¤Î¥Ü¥¿¥ó(´Ø¿ô¸Æ½Ð)¤Ç¹Ô¤¦¤³¤È¤È¤¹¤ë¤³¤È¤Ç¡¢ºÆÍøÍѤ䥻¥­¥å¥ê¥Æ¥£¤Î¸þ¾å¤Ê¤É¤ò³ÎÊݤ·¤Æ¤¤¤ë¡£¡Ê¥«¥×¥»¥ë²½¡Ë

¡¡¸Î¤Ë¡¢¤á¤ó¤É¤¯¤µ¤¤¼ê³¤­¤ÈÆñ²ò¤ÊÃ챤òɬÍפò¤µ¤ì¤ë¡£

¼¡¤Ë´Êñ¤Ê Class ¤Î»ÈÍÑÎã
¢¨Class Æâ¤Ø ¥á¥ó¥Ð´Ø¿ô¤ò»ý¤¿¤»¤¿Îã¡£
#include <iostream>
#include <string>
using namespace std;
class Meibo {
private:
   int    age;
   string name;
public:
   void SetData(int in_age, string in_name) {
      age  = in_age;
      name = in_name;
   }
   void ShowData() {
      cout << age  << endl;
      cout << name << endl;
   }
} My;
void main() {
   My.SetData(13, "Kinomoto Sakura");
   My.ShowData();
}
¢¨´Ø¿ô¤ò¥á¥ó¥Ð¤Ø´Þ¤á³°Éô¤«¤é private: Æâ¤ÎÁàºî¤ò²Äǽ¤È¤¹¤ë¡£
¢¨main ¤«¤é¤Ï¡¢¸ø³«¤µ¤ì¤¿´ûÄê¤Î¥á¥ó¥Ð´Ø¿ô¤Î¤ß¸Æ½Ð¤¬²Äǽ¡£

¥á¥ó¥Ð´Ø¿ô¤ò³°Éô¤ØÃÖ¤¯¾ì¹ç
class Meibo {
   int    age;
   string name;
public:
   void SetMeibo(int, string);
   void Show();
};
void main() {
   Meibo MyClass;
   MyClass.SetMeibo(13,"Kinomoto Sakura");
   MyClass.Show();
}
void Meibo::SetMeibo(int in_age, string in_name) {
   age  = in_age;
   name = in_name;
}
void Meibo::Show() {
   cout << age  << endl;
   cout << name << endl;
}
¢¨¥á¥ó¥Ð´Ø¿ô¤Ï¡¢³°ÉôÄêµÁ¤·¤¿´Ø¿ô¤ÎÍøÍѤâ½ÐÍè¤ë¡£
¢¨Îã¤Ë¤è¤Ã¤Æ¿§¡¹¤Êµ­½Ò¤¬²Äǽ¤À¤¬¡¢Ä̾ï¤Ï¤³¤Î·Á¼°¤¬Â¿¤¤¡£

¢¥¾å¤Ø [ ÊÔ½¸ ]

¥¯¥é¥¹¤ò¹½Â¤ÂΤȤ·¤Æ»È¤¦

¡¡¹½Â¤ÂÎ(struct)¤Î»ÈÍѤò»ß¤á¤Æ¡¢Class ¤Ç°Ê²¼¤ÎÍͤ˥եġ¼¤Ë»ÈÍѲÄǽ¡£

ºÇ¤â´Êñ¤Ê Class ¤Î»ÈÍÑÎã
¢¨Ã±¤Ë struct ¤ò class ¤ØÃÖ¤­´¹¤¨¤Æ»ÈÍÑ¡£
#include <iostream>
#include <string>
using namespace std;
class Meibo {
public:        // ɬ¿Ü ̵¤Ê¤é´ûÄê¤Ç private: ¤È¤Ê¤ë¡£
   int    age;
   string name;
} My;
void main() {
   My.age  = 13;
   My.name = "Kinomoto Sakura";
   cout << My.age  << endl;
   cout << My.name << endl;
}
¢¨Struct ¤¬ Class ¤ËÃÖ¤­´¹¤ï¤Ã¤Æ¤¤¤ë¤À¤±¤Ç¹½Â¤ÂΤÈƱÍͤËÆ°¤¯¡£
¢¨Í×Ãí°Õ¡§¤³¤Î¾ì¹ç public: ɬ¿Ü¡£¤³¤³¤¬ struct ¤ÈÂ礭¤¯°Û¤Ê¤ë¡£
¢¨struct class ¤Î°ìÉôÁê°ãÅÀ¤Î¤ßÇÄ°®¤·¤Æ¤¤¤ì¤Ð¡¢¤³¤¦¤·¤¿¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£
¢¨public: »ØÄꤷ¤Ê¤¤¾ì¹ç¡¢class ³°Éô¤è¤ê¹½Â¤ÂÎÊÑ¿ô¤¬±£Ê䵤ì¤ë¡£¡Ê¥¢¥¯¥»¥¹ÉԲġË

¢¥¾å¤Ø [ ÊÔ½¸ ]

¥ê¥ó¥¯


ÆâÉô¥ê¥ó¥¯

^ [[C/C++ ¥¯¥é¥¹(Class)]]

³°Éô¥ê¥ó¥¯


  • ¸½ºß¤¢¤ê¤Þ¤»¤ó

¢¥¾å¤Ø [ ÊÔ½¸ ]
2008ǯ07·î08Æü(²Ð) 00:12:38 Modified by cafeboy1




¥¹¥Þ¡¼¥È¥Õ¥©¥óÈǤǸ«¤ë