ÈçºÎʹÓ÷ºÐÍÄ£擬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://mayer.vokaa.com/archives/16
¶ÔÓÚÒ»¸öǰ¶Ë¹¤×÷Õߣ¬¶¼ÖªµÀ·ûºÏW3C¹æ·¶¶ÔÓÚÍøÒ³µÄ¿çä¯ÀÀÆ÷¹¤×÷´øÀ´ºÃ´¦£¬²¢ÄÜÊ¹ÍøÒ³ÔÚ²»Í¬µÄä¯ÀÀÆ÷Ö®¼ä»¥Ïà¼æÈÝ¡£
ÔÚÕâÀïÎÒÃÇÒ»Ò»Áоٻ¥ÁªÍøÉÏËùÌṩµÄ½â¾ö°ì·¨¼°Ò»Ð©ÎÒ¸öÈ˵Ľ¨Ò鼰ʵ¼ù°¸Àý¡£
Æäʵ£¬ÏÖÔÚ¶àÊýÈ˶¼»áʹÓÃHackµÄ·½·¨½â¾ö£¬µ«Èç¹ûDIVºÍCSSµÄ½á¹¹ÇåÎú¡¢ºÏÀí£ ......
×öµ½×¨Òµ£¬Ó¦¸ÃÊÇÿ¸öÖ°Òµ³ÌÐòÔ±Ó¦¸ÃÒªÇó×Ô¼º×öµ½µÄ¡£
ÈÃÎÒÃÇ¿´¿´lua
ÊÇ
ÔõôдͷÎļþµÄ¡£
1.License Agreement
License
Agreement
Ó¦¸Ã¼ÓÔÚÿ¸öÍ·ÎļþµÄ¶¥²¿¡£
Lua Sample:
/*
** $Id: lua.h,v 1.175b 2003/03/18 12:31:39 roberto Exp $
** Lua - An ......
C/C++ÊÇ×îÖ÷ÒªµÄ±à³ÌÓïÑÔ¡£ÕâÀïÁгöÁË50ÃûÓÅÐãÍøÕ¾ºÍÍøÒ³Çåµ¥£¬ÕâÐ©ÍøÕ¾Ìṩc/c++Ô´´úÂë¡£Õâ·ÝÇåµ¥ÌṩÁËÔ´´úÂëµÄÁ´½ÓÒÔ¼°ËüÃǵÄС˵Ã÷¡£ÎÒÒѾ¡Á¦°üÀ¨×î¼ÑµÄC/C++Ô´´úÂëµÄÍøÕ¾¡£Õâ²»ÊÇÒ»¸öÍêÕûµÄÇåµ¥£¬ÄúÓн¨Òé¿ÉÒÔÁªÏµÎÒ£¬ÎÒ½«»¶ÓÄúµÄ½¨Ò飬ÒÔ½øÒ»²½¼ÓÇ¿Õâ·½ÃæµÄÇåµ¥¡£
1¡¢http://snippets.dzone.com/tag/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 ......