ÈçºÎʹÓ÷ºÐÍÄ£擬virtual? (C/C++) (template)
ÍøÉÏÒ»µÀ½ðɽµÄÃæÊÔÌ⣺
http://topic.csdn.net/u/20100524/14/0eff992a-2849-4db6-bdaa-d4a200e79b7c.html
Çë·Ö±ðÓÃC++µÄÃæÏò¶ÔÏóºÍ·ºÐÍ»úÖÆ£¬±àдʵÏÖTemplate MethodģʽµÄʾÀý´úÂ룬²¢±È½ÏÁ½ÖÖ·½Ê½¸÷×ÔµÄÓÅȱµã¡£
ÓÃÐ麯ÊýʵÏÖTemplate MethodµÄ·½Ê½¾Í²»¶à˵ÁË¡£Ó÷ºÐ͵ķ½Ê½ÊµÏÖ¶à̬ÔÚATLÀïÃæÓдóÁ¿µÄÓõ½£¡
·ºÐ͵ÄÓÅÊÆ¾ÍÔÚÓÚÆäÖ´ÐÐЧÂʸߣ¡±àÒëÆÚ¶à̬£¡ÕâÒ²ÊÇATL/WTLÓÅÓÚMFCµÄµØ·½£¡
ÖÁÓÚ·ºÐÍʵÏÖ¶à̬µÄÁÓÊÆ£¬ÎÒÍüÁË£¬µ«Ó¦¸ÃÊÇ·ºÐÍûÓÐÐ麯Êý¹¦ÄÜÇ¿´ó£¬ºÃÏñÔڶ༶¼Ì³ÐϾÍʧЧÁ˰ɣ¿±ÈÈçÖ»ÄÜÓÃÓÚBASE-DeriveÁ½¼¶¼Ì³Ð£¬¶ÔÓÚBase-Derive-DeriveDeriveÔò²»ÐУ¡
²»¶à˵ÁË£¬¿´¿´ÈçºÎÓ÷ºÐÍʵÏÖTemplate Methodģʽ°É¡££º£©
ת×Ô£ºhttp://kb.cnblogs.com/a/873808/
Abstract
OO×îÖØÒªµÄ¶àÐÍ/¶à態¾ÍÊÇÓÃ繼³Ð + virtual來Íê³É£¬virtual雖ºÃÓ㬵«¸¶³öµÄ´ú價¾ÍÊÇ¡º¸ü¶àµÄ記憶體¡»+¡º¸üÂýµÄËÙ¶È¡»£¬±¾ÎĽé紹ʹÓ÷ºÐÍ來Ä£擬virtual機ÖÆ¡£
Introduction
Ê×ÏÈ聲Ã÷£¬這並²»ÊÇÎÒ獨創µÄ·½·¨£¬¶øÊÇATLËùʹÓõķ½Ê½£¬請參¿¼(轉貼) ATL²¼á£Ö®ÏµÄÃØÃÜ(3) (C++) (template)
為ʲ麼ÒªÓ÷ºÐÍ來Ä£擬virtual機ÖÆÄØ?
Ö÷ÒªÊÇÒò為virtual機ÖÆÐèÀûÓõ½vtable£¬ËùÒÔ較Õ¼記憶體£¬Óֵÿ¿vptrÔÚrun-time執ÐжàÐÍ£¬ËùÒÔ執ÐÐËÙ¶È較Âý£¬ËùÒÔATL²ÅÏëÀûÓ÷ºÐÍ這種compile-time機ÖÆ讓component盡¿ÉÄܵÄС£¬盡¿ÉÄܵĿ졣
Example Code
/**//*
(C) OOMusou 2007 http://oomusou.cnblogs.com
Filename : template_virtual.cpp
Compiler : Visual C++ 8.0 / BCB 6.0 / gcc 3.4.2 / ISO C++
Description : Demo how to use generics to simulate virtual
Release : 08/28/2007 1.0
*/
#include <iostream>
using namespace std;
template <typename Derived>
class Base {
public:
void func()&nb
Ïà¹ØÎĵµ£º
ת
ÔØ×Ôhttp://www.builder.com.cn/
static
ÊÇc++Öкܳ£ÓõÄÐÞÊηû£¬Ëü±»ÓÃÀ´¿ØÖƱäÁ¿µÄ´æ´¢·½Ê½ºÍ¿É¼ûÐÔ£¬ÏÂÃæÎÒ½«´Ó static ÐÞÊηûµÄ²úÉúÔÒò¡¢×÷ÓÃ̸Æð£¬È«Ãæ·ÖÎöstatic
ÐÞÊηûµÄʵÖÊ¡£
¡¡¡¡static µÄÁ½´ó×÷ÓÃ:
¡¡¡¡Ò»¡¢¿ØÖÆ´æ´¢·½Ê½£º
¡¡¡¡static±»ÒýÈëÒÔ¸æÖª±àÒëÆ÷£¬½«±ä ......
×Ö·û´®ÊÇCÓïÑԵľ«»ªÖ®Ò»£¬CÓïÑÔÊDZÊÊÔ¿¼ÌâµÄºËÐÄ֪ʶµã£¬²»¹ÜÄãÊÇѧc++£¬Ñ§java»¹ÊÇc#¡¢.net£¬»¹Êǽű¾Ê²Ã´µÄ£¬×îºÃ»¹ÊǶ®µãC°É£¬²»¶®C±ÊÊÔ»òÐí±È½Ï³Ô¿÷¡£ËùÒÔÔÚ±ÊÊÔÃæÊÔÖУ¬×Ö·û´®µÄÎÊÌâÊǾ³£³öÏֵ쬯äÖÐÓÐÒ»ÀàÎÊÌâ¾ÍÊÇ×Ô¼ºÊµÏÖһЩ»ù±¾µÄC±ê×¼¿âµÄ×Ö·û´®´¦Àíº¯Êý»òÆäËûC±ê×¼¿âº¯Êý¡£
ÎÊÌâÒ»ÃèÊö£º Óñê×¼Cдһ¸öÅжϸ ......
pid_t pid=fork()
it has 3 situation for the return result pid
0 child
>0 parent process
<0 fork fail
fork create a new process and it parent live alse when the child process had been created ......