LinuxÒÁµéÔ°ÂÛ̳'s Archiver

Rex_Chaos ·¢±íÓÚ 2005-10-21 14:13

Ò»¸ö¼ÆËãÖÐÉæ¼°µ½µÄÎÊÌâ

ÔÚ¼ÆËãÖÐ(½âƫ΢·Ö·½³Ì)ÍùÍùÒª¿¼ÂDZ߽çÌõ¼þ,¶ø±ß½çÉϵÄÖµÍùÍùÈ¡¸úijЩµãµÄÖµ±ä»¯Ò»Ñù. ¶ÔÓÚ¿Õ¼äÉÏijһµã, ÎÒÉè¼ÆÁËÏÂÁнṹ

[CODE]
typedef <class T>
struct Point
{
  T u;
  T v;
}
[/CODE]

ΪÁË¿ÉÒÔÔÚ³ÌÐòÔËÐÐÊ±Çø±ðÆÕͨµãºÍ±ß½çµã, ÎÒÓּ̳ÐÁËPoint
[CODE]
typedef <class T>
struct BPoint:Point<T>
{
}
[/CODE]

ÕâÑù¾ÍµÃµ½Á½ÖÖµãÁË. µ«ÊÇ, ÔÚ¼ÆËãʱҪ´¦Àí±ß½çÌõ¼þ, ÀýÈç, ÿ¼ÆËãÒ»²½¶¼Òª½«±ß½çµãÉϵÄÖµÓÃËüµÄÁÚ½üµãµÄÖµÀ´¸³Öµ£¬ Èç¹ûÎÊÌâ¹æÄ£´ó£¬ÕâÑùÒ²ÊǺܺÄʱµÄ¡£ÎÒÏëÄÜ·ñ°ÑBPointÖеıäÁ¿ÉèΪָÕ룬²¢Ö¸Ïòij¸öÁÚ½üµã£¬ÕâÑù¾Í²»ÓÃÿ´ÎÈ¥¸üÐÂËüÁË¡£

[CODE]
typedef <class T>
struct BPoint:Point<T*>
{
}
[/CODE]

ÉÏÊöµÄ´úÂëÊǺϷ¨µÄ£¬ÎÒ¿ÉÒÔÔ¤ÏȽ«ËùÓÐBPointÖÐÏàÓ¦µÄu, vÖ¸ÏòÊʵ±µÄµØ·½¡£µ«ÊÇÕâÑù¸Ä±äÒÔºó£¬ÎÒÒªÒýÓÃBPointÖеÄֵʱ¾Í²»ÄÜÓÃ"."²Ù×÷·ûÁË£¬ÕâÑùÓÖÆÆ»µÁËËã·¨µÄÒ»ÖÂÐÔ¡£ÓÐûÓа취¿ÉÒÔ¼ÈʹBPointÖ¸Ïòij¸öµã£¬Í¬Ê±ÓÖ¿ÉÒÔ¼ÌÐøÊ¹ÓÃ"."À´×÷Êý¾ÝÒýÓã¿ÀýÈç



[CODE]
  Point<int> p;
  BPoint<int> bp;

  p.u = 100; p.v=200;
  // ÕâÀï bp.u Ö¸Ïò p.u , bp.v Ö¸Ïòp.v£¬ ¼´bp.u=100, bp.v=200
  // µ«ÒªÒýÓÃbpÖеÄÖµ£¬ Ö»ÄÜд×÷*bp.u, *bp.v£¬ ÄÜ·ñÓÃbp.uºÍbp.vÀ´ÒýÀ´£¿
[/CODE]

DarkSpy ·¢±íÓÚ 2005-11-2 14:12

ÕâÖÖ¶«Î÷Óõĵ½Ä£°åô?

supersarah ·¢±íÓÚ 2006-2-15 12:21

¿´¿´ÄãÄܲ»ÄÜÖØÔØÔËËã·û . :)

²»¹ý×îºÃ»¹ÊDz»ÒªÓÃÕâÖÖ±í´ï·½Ê½£¬ÕâÑùµÄ´úÂ뼸ºõÎÞ·¨ÔĶÁ

¿¼ÂÇһϿÉÒÔÓà union µÄ·½Ê½Âð£¿

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.