锘??xml version="1.0" encoding="utf-8" standalone="yes"?>2021久久国自产拍精品,久久人人爽人人爽人人片av麻烦 ,久久青青草原亚洲av无码http://m.shnenglu.com/iuranus/category/4275.html<br><font color="#ADFF2F">Something Different錛孲omething New</font>zh-cnThu, 06 May 2010 09:44:37 GMTThu, 06 May 2010 09:44:37 GMT60(杞?C++紼嬪簭璋冪敤C鍑芥暟http://m.shnenglu.com/iuranus/archive/2010/03/08/109187.html鏀鍗?/dc:creator>鏀鍗?/author>Mon, 08 Mar 2010 07:23:00 GMThttp://m.shnenglu.com/iuranus/archive/2010/03/08/109187.htmlhttp://m.shnenglu.com/iuranus/comments/109187.htmlhttp://m.shnenglu.com/iuranus/archive/2010/03/08/109187.html#Feedback0http://m.shnenglu.com/iuranus/comments/commentRss/109187.htmlhttp://m.shnenglu.com/iuranus/services/trackbacks/109187.html杞嚜錛?a >http://blog.csdn.net/ustcgy/archive/2009/12/23/5063082.aspx

榪欑闇姹傚緢澶?鍙堝洜涓篊++鍜孋鏄袱縐嶅畬鍏ㄤ笉鍚岀殑緙栬瘧閾炬帴澶勭悊鏂瑰紡,鎵浠ヨ紼嶅姞澶勭悊.鎬葷粨澶ц嚧鏈変袱澶х被瀹炵幇鏂規硶.

鏂囦腑緇欏嚭鐨勬槸瀹屾暣鐨?鍏蜂綋鐨?浣嗗張鏈鍩烘湰鏈綆鍗曠殑瀹炵幇,鑷充簬鐞嗚鎬х殑涓滆タ鍦ㄧ綉涓婂緢瀹規槗鎼滅儲鐨勫埌.

涓.閫氳繃澶勭悊琚皟鐢ㄧ殑C澶存枃浠?/strong>

a.h:

#ifndef __A_H
#define __A_H

#ifdef __cplusplus
extern "C" {
#endif

int ThisIsTest(int a, int b);

#ifdef __cplusplus
}
#endif

#endif

a.c:

#include "a.h"

int ThisIsTest(int a, int b) {
  return (a + b);
}

aa.h:

class AA {
  public:
      int bar(int a, int b);
};

aa.cpp:

#include "a.h"
#include "aa.h"
#include "stdio.h"

int AA::bar(int a, int b){
    printf("result=%d\n", ThisIsTest(a, b));
    return 0;
}

main.cpp:

#include "aa.h"

int main(int argc, char **argv){
  int a = 1;
  int b = 2;
  AA* aa = new AA();
  aa->bar(a, b);
  delete(aa);
  return(0);
}

Makefile:

all:
        gcc -Wall -c a.c -o a.o
        gcc -Wall -c aa.cpp -o aa.o
        gcc -Wall -c main.cpp -o main.o
        g++ -o test *.o

浜? 閫氳繃澶勭悊璋冪敤鐨凜++鏂囦歡

鎭㈠a.h鏂囦歡涓轟竴鑸澶存枃浠?鍦╝a.cpp鏂囦歡涓璭xtern鍖呭惈a.h澶存枃浠舵垨鍑芥暟.

a.h:

#ifndef __A_H
#define __A_H
int ThisIsTest(int a, int b);
#endif

aa.cpp:

extern "C"
{
    #include "a.h"
}
#include "aa.h"
#include "stdio.h"

int AA::bar(int a, int b){
    printf("result=%d\n", ThisIsTest(a, b));
    return 0;
}

or

aa.cpp:

#include "aa.h"
#include "stdio.h"

extern "C"
{
    int ThisIsTest(int a, int b);
}

int AA::bar(int a, int b){
    printf("result=%d\n", ThisIsTest(a, b));
    return 0;
}



]]>
(杞? 鎬葷粨C++涓殑鎵鏈夊己鍒惰漿鎹㈠嚱鏁?const_cast錛宺einterpret_cast錛宻tatic_cast錛宒ynamic_cast) http://m.shnenglu.com/iuranus/archive/2009/06/22/88257.html鏀鍗?/dc:creator>鏀鍗?/author>Mon, 22 Jun 2009 03:24:00 GMThttp://m.shnenglu.com/iuranus/archive/2009/06/22/88257.htmlhttp://m.shnenglu.com/iuranus/comments/88257.htmlhttp://m.shnenglu.com/iuranus/archive/2009/06/22/88257.html#Feedback6http://m.shnenglu.com/iuranus/comments/commentRss/88257.htmlhttp://m.shnenglu.com/iuranus/services/trackbacks/88257.html
闈炲父鎶辨瓑錛岃阿璋㈤儹鑰佸笀鐨勬寚姝o紝鎴戞病鏈夎鐪熺湅榪欎釜鏂囩珷灝辮漿榪囨潵浜嗭紝鍏跺疄浠栫殑閿欒澶浜嗭紝鑰屼笖榪樻槸鑷村懡鐨勶紝瀵瑰ぇ瀹朵笉璐熻矗浠諱簡錛岃澶у璋呰В錛佺幇鍦ㄦ槸淇鐗堟湰錛屽熀鏈病鏈夐敊璇簡錛佸鏋滆寰楄繕鏈夐棶棰橈紝璇瘋仈緋繪垜錛岃阿璋綘鐨勫叧娉紒
榪欑瘒鏂囩珷鍏跺疄騫朵笉鏄笉鎵嶇殑鍘熷垱錛屾湰鏉ユ墦綆楄嚜宸卞啓鐨勶紝浣嗘槸閫氳繃baidu涓涓嬶紝鍙戠幇鏈夊厔寮熷啓鍑烘潵浜嗭紝灝卞共鑴嗘憳褰曚笅鏉ワ紝渚涘ぇ瀹跺弬鑰冧嬌鐢ㄤ簡錛?br>璇︽儏璇風湅錛?br>
  1. 鏍囧噯c++涓富瑕佹湁鍥涚寮哄埗杞崲綾誨瀷榪愮畻絎︼細  
  2.   
  3. const_cast錛宺einterpret_cast錛宻tatic_cast錛宒ynamic_cast絳夌瓑銆?nbsp; 
  4.   
  5.   
  6.   
  7.   
  8. 1錛塻tatic_cast<T*>(a)  
  9.   
  10. 灝嗗湴鍧a杞崲鎴愮被鍨婽錛孴鍜宎蹇呴』鏄寚閽堛佸紩鐢ㄣ佺畻鏈被鍨嬫垨鏋氫婦綾誨瀷銆?nbsp; 
  11.   
  12. 琛ㄨ揪寮弒tatic_cast<T*>(a), a鐨勫艱漿鎹負妯℃澘涓寚瀹氱殑綾誨瀷T銆傚湪榪愯鏃惰漿鎹㈣繃紼嬩腑錛屼笉榪涜綾誨瀷媯鏌ユ潵紜繚杞崲鐨勫畨鍏ㄦс?nbsp; 
  13.   
  14.   
  15.   
  16.   
  17. 渚嬪瓙錛?nbsp; 
  18.   
  19.   
  20.   
  21.   
  22. class B { ... };  
  23.   
  24. class D : public B { ... };  
  25.   
  26. void f(B* pb, D* pd)  
  27.   
  28. {  
  29.   
  30.    D* pd2 = static_cast<D*>(pb);        // 涓嶅畨鍏? pb鍙兘鍙槸B鐨勬寚閽?nbsp; 
  31.   
  32.   
  33.   
  34.   
  35.    B* pb2 = static_cast<B*>(pd);        // 瀹夊叏鐨?nbsp; 
  36.   
  37.    ...  
  38.   
  39. }  
  40.   
  41.   
  42.   
  43.   
  44.   
  45.   
  46.   
  47. class B { ... };  
  48.   
  49. class D : public B { ... };  
  50.   
  51. void f(B* pb, D* pd)  
  52.   
  53. {  
  54.   
  55.    D* pd2 = static_cast<D*>(pb);        // 涓嶅畨鍏? pb鍙兘鍙槸B鐨勬寚閽?nbsp; 
  56.   
  57.   
  58.   
  59.   
  60.    B* pb2 = static_cast<B*>(pd);        // 瀹夊叏鐨?nbsp; 
  61.   
  62.    ...  
  63.   
  64. }  
  65.   
  66.   
  67.   
  68.   
  69.   
  70.   
  71.   
  72. class B { ... };  
  73.   
  74. class D : public B { ... };  
  75.   
  76. void f(B* pb, D* pd)  
  77.   
  78. {  
  79.   
  80.    D* pd2 = static_cast<D*>(pb);        // 涓嶅畨鍏? pb鍙兘鍙槸B鐨勬寚閽?nbsp; 
  81.   
  82.   
  83.   
  84.   
  85.    B* pb2 = static_cast<B*>(pd);        // 瀹夊叏鐨?nbsp; 
  86.   
  87.    ...  
  88.   
  89. }  
  90.   
  91.   
  92.   
  93.   
  94. 2錛塪ynamic_cast<T*>(a)  
  95.   
  96. 瀹屾垚綾誨眰嬈$粨鏋勪腑鐨勬彁鍗囥俆蹇呴』鏄竴涓寚閽堛佸紩鐢ㄦ垨鏃犵被鍨嬬殑鎸囬拡銆俛蹇呴』鏄喅瀹氫竴涓寚閽堟垨寮曠敤鐨勮〃杈懼紡銆?nbsp; 
  97.   
  98. 琛ㄨ揪寮廳ynamic_cast<T*>(a) 灝哸鍊艱漿鎹負綾誨瀷涓篢鐨勫璞℃寚閽堛傚鏋滅被鍨婽涓嶆槸a鐨勬煇涓熀綾誨瀷錛岃鎿嶄綔灝嗚繑鍥炰竴涓┖鎸囬拡銆?nbsp; 
  99.   
  100.   
  101.   
  102.   
  103. 渚嬪瓙錛?nbsp; 
  104.   
  105. class A { ... };  
  106.   
  107. class B { ... };  
  108.   
  109. void f()  
  110.   
  111. {  
  112.   
  113.   A* pa = new A;  
  114.   
  115.   B* pb = new B;  
  116.   
  117.   void* pv = dynamic_cast<A*>(pa);  
  118.   
  119.   // pv 鐜板湪鎸囧悜浜嗕竴涓被鍨嬩負A鐨勫璞?nbsp; 
  120.   
  121.   ...  
  122.   
  123.   pv = dynamic_cast<B*>(pb);  
  124.   
  125.   // pv 鐜板湪鎸囧悜浜嗕竴涓被鍨嬩負B鐨勫璞?nbsp; 
  126.   
  127. }  
  128.   
  129.   
  130.   
  131.   
  132. 3錛塩onst_cast<T*>(a)  
  133.   
  134. 鍘繪帀綾誨瀷涓殑甯擱噺錛岄櫎浜哻onst鎴栦笉紼沖畾鐨勫彉鍧鏁幫紝T鍜宎蹇呴』鏄浉鍚岀殑綾誨瀷銆?nbsp; 
  135.   
  136. 琛ㄨ揪寮廲onst_cast<T*>(a)琚敤浜庝粠涓涓被涓幓闄や互涓嬭繖浜涘睘鎬э細const, volatile, 鍜?nbsp;__unaligned銆?nbsp; 
  137.   
  138.   
  139.   
  140.   
  141. 渚嬪瓙錛?nbsp; 
  142.   
  143.   
  144.   
  145.   
  146.   
  147.   
  148.   
  149. class A { ... };  
  150.   
  151. void f()  
  152.   
  153. {  
  154.   
  155.  const A *pa = new A;//const瀵硅薄  
  156.   
  157.  A *pb;//闈瀋onst瀵硅薄  
  158.   
  159.   
  160.   
  161.   
  162. //pb = pa; // 榪欓噷灝嗗嚭閿欙紝涓嶈兘灝哻onst瀵硅薄鎸囬拡璧嬪肩粰闈瀋onst瀵硅薄  
  163.   
  164.  pb = const_cast<A*>(pa); // 鐜板湪OK浜?nbsp; 
  165.   
  166. ...  
  167.   
  168. }  
  169.   
  170.   
  171.   
  172.   
  173.   
  174.   
  175.   
  176. class A { ... };  
  177.   
  178. void f()  
  179.   
  180. {  
  181.   
  182.  const A *pa = new A;//const瀵硅薄  
  183.   
  184.  A *pb;//闈瀋onst瀵硅薄  
  185.   
  186.   
  187.   
  188.   
  189. //pb = pa; // 榪欓噷灝嗗嚭閿欙紝涓嶈兘灝哻onst瀵硅薄鎸囬拡璧嬪肩粰闈瀋onst瀵硅薄  
  190.   
  191.  pb = const_cast<A*>(pa); // 鐜板湪OK浜?nbsp; 
  192.   
  193. ...  
  194.   
  195. }  
  196.   
  197.   
  198.   
  199.   
  200.   
  201.   
  202.   
  203. class A { ... };  
  204.   
  205. void f()  
  206.   
  207. {  
  208.   
  209.  const A *pa = new A;//const瀵硅薄  
  210.   
  211.  A *pb;//闈瀋onst瀵硅薄  
  212.   
  213.   
  214.   
  215.   
  216. //pb = pa; // 榪欓噷灝嗗嚭閿欙紝涓嶈兘灝哻onst瀵硅薄鎸囬拡璧嬪肩粰闈瀋onst瀵硅薄  
  217.   
  218.  pb = const_cast<A*>(pa); // 鐜板湪OK浜?nbsp; 
  219.   
  220. ...  
  221.   
  222. }  
  223.   
  224.   
  225.   
  226.   
  227. 4錛塺einterpret_cast<T*>(a)  
  228.   
  229. 浠諱綍鎸囬拡閮藉彲浠ヨ漿鎹㈡垚鍏跺畠綾誨瀷鐨勬寚閽堬紝T蹇呴』鏄竴涓寚閽堛佸紩鐢ㄣ佺畻鏈被鍨嬨佹寚鍚戝嚱鏁扮殑鎸囬拡鎴栨寚鍚戜竴涓被鎴愬憳鐨勬寚閽堛?nbsp; 
  230.   
  231. 琛ㄨ揪寮弐einterpret_cast<T*>(a)鑳藉鐢ㄤ簬璇稿char* 鍒?nbsp;int*錛屾垨鑰匫ne_class* 鍒?nbsp;Unrelated_class*絳夌被浼艱繖鏍風殑杞崲錛屽洜姝ゅ彲鑳芥槸涓嶅畨鍏ㄧ殑銆?nbsp; 
  232.   
  233.   
  234.   
  235.   
  236. 渚嬪瓙錛?nbsp; 
  237.   
  238. class A { ... };  
  239.   
  240. class B { ... };  
  241.   
  242. void f()  
  243.   
  244. {  
  245.   
  246.   A* pa = new A;  
  247.   
  248.   void* pv = reinterpret_cast<A*>(pa);  
  249.   
  250.   // pv 鐜板湪鎸囧悜浜嗕竴涓被鍨嬩負B鐨勫璞★紝榪欏彲鑳芥槸涓嶅畨鍏ㄧ殑  
  251.   
  252.   ...  
  253.   




]]>
鍙互鏍規嵁瀛楃涓插垱寤虹被鍚?-瑙e喅鏂規 鐔熺粌c/c++(鍏?http://m.shnenglu.com/iuranus/archive/2009/01/12/71832.html鏀鍗?/dc:creator>鏀鍗?/author>Mon, 12 Jan 2009 14:29:00 GMThttp://m.shnenglu.com/iuranus/archive/2009/01/12/71832.htmlhttp://m.shnenglu.com/iuranus/comments/71832.htmlhttp://m.shnenglu.com/iuranus/archive/2009/01/12/71832.html#Feedback28http://m.shnenglu.com/iuranus/comments/commentRss/71832.htmlhttp://m.shnenglu.com/iuranus/services/trackbacks/71832.html鎯充簡寰堜箙錛岀粨鍚坈++璁捐鏂版濈淮鐨勬柟娉曪紝澶у榪欑璁捐浼氭湁浠涔堥棶棰橈紵


錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛岻Shape.h錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?br>class IShape
{
public:
 IShape()
 {
  printf("\n IShape\n");
 }
 virtual ~IShape()
 {
  printf("\n ~IShape\n");
 }
 virtual void Draw() = 0;
};

typedef const char* ShapeType;
typedef IShape* (*Creator)();


錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞ShapeFactory.h錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞

class ShapeFactory {
public:
    static ShapeFactory& Instance() {
        static ShapeFactory instance;
        return instance;
    }

    IShape* Create(ShapeType shapeType);
    bool RegisterShape(ShapeType shapeType, Creator creator);

private:
    ShapeFactory() {}
 std::map<ShapeType, Creator> shapeCreators;
};

錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞ShapeFactory.cpp錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞

#include "CFactory.h"

IShape* ShapeFactory::Create(ShapeType shapeType) {
      Creator creator = shapeCreators.find( shapeType )->second;
 
      if ( creator == NULL ) 
      { 
           return NULL; 
       }
       return creator();
}

bool ShapeFactory::RegisterShape( ShapeType shapeType, Creator creator ) {
       map<ShapeType, Creator>::iterator iter;
       iter = shapeCreators.find(shapeType);
       if(iter != shapeCreators.end())
       {
           return false;
       } else {
           shapeCreators[shapeType] = creator;
           return true;
    }
}

錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞CCircle .h錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
#include<stdio.h>

#include "IShape.h"
#include "CFactory.h"
class CCircle : public IShape
{
public:
 CCircle()
 {
  printf("\n CCircle\n");
 }
 virtual ~CCircle()
 {
  printf("\n ~CCircle\n");
 }

 virtual void Draw();
};


錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞CCircle .cpp錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
#include "CCircle.h"

IShape* Create() { return new CCircle(); }
static const bool RegisterShape__ = ShapeFactory::Instance().RegisterShape( "CCircle", Create);

void CCircle::Draw()
{
 printf("\n CCircle::Draw\n");
}


錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞main.cpp錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
#include<stdio.h>
#include"CFactory.h"

#include "IShape.h"

int main() {
    IShape* line = ShapeFactory::Instance().Create("CCircle");
    line->Draw();    
    return 0;
}

鏈夌偣灝忓皬鐨勫叴濂嬶紝澶у縐瀬鍙戣█鍝燂紒錛侊紒

涓昏鍙傝冿細 http://blog.csdn.net/jicao/archive/2006/07/01/861343.aspx 
                     http://blog.csdn.net/hjsunj/archive/2008/01/07/2028597.aspx
                     銆奵++璁捐鏂版濈淮銆?/p>

]]>
C璇█鎬庝箞瑙f瀽澹版槑 鐔熺粌c/c++(浜?http://m.shnenglu.com/iuranus/archive/2009/01/08/71530.html鏀鍗?/dc:creator>鏀鍗?/author>Thu, 08 Jan 2009 13:09:00 GMThttp://m.shnenglu.com/iuranus/archive/2009/01/08/71530.htmlhttp://m.shnenglu.com/iuranus/comments/71530.htmlhttp://m.shnenglu.com/iuranus/archive/2009/01/08/71530.html#Feedback0http://m.shnenglu.com/iuranus/comments/commentRss/71530.htmlhttp://m.shnenglu.com/iuranus/services/trackbacks/71530.html         棣栧厛澹版槑濡傛灉浣?/span>瀵?/span>int (*a)[10], char* const (*next());宸?/span>緇忎簡瑙o紝灝變笉瑕佺湅浜嗭紝涓涓0鏄庢槸娌′粈涔堟剰鎬濈殑錛岃繖綃囨枃绔犲彧鏄兂闃愯堪涓?/span>C璇█鏄庝箞瑙f瀽瀹冪殑澹版槑銆?/span>     

         澹版槑閲岄潰鍙互鍖呮嫭鐨勫厓绱犳湁錛?/span>綾誨瀷璇存槑絎?/span>(int, void, char,struct...)錛屽瓨鍌ㄧ被鍨?/span>extern, static, register, 綾誨瀷闄愬畾絎?/span>(const, volatile), 鍙橀噺鍚?/span>(鏍囪瘑絎?/span>), 絎﹀彿(*錛?/span>鍦嗘嫭鍙峰拰涓嫭鍙?/span>)錛?/span>

       鎬諱綋鍘熷垯鏄紝鎵懼埌鏍囪瘑絎?/span>(鍗蟲槸鎴?/span>浠鉤鏃跺彨鐨勫彉閲忓悕)錛屼粠鍙沖悜宸﹁В鏋愶紱

       鍏蜂綋姝?/span>楠ゅ涓嬶細

       1. 鎵懼埌澹版槑涓渶宸?/span>杈圭殑鏍囪瘑絎?/span>,鍘繪帀鏍囪瘑絎?/span>   => 鍙橀噺鏄彨鏍囪瘑絎?/span>

       2. 鏌ョ湅鏍囪瘑絎﹀彸杈圭殑涓嬩竴涓鍙?/span>錛?/span>濡傛灉鏄柟鎷彿錛屽彇鍑哄彲鑳界殑澶у皬錛屽幓鎺夋柟鎷彿 錛?/span>>鏄竴涓暟緇?/span>銆?/span>

    3. 鏌ョ湅鏍囪瘑絎﹀彸杈圭殑涓嬩竴涓鍙?/span>錛?/span>

 濡傛灉鏄乏鍦嗘嫭鍙鳳紝鍙栧嚭鍙兘鐨勫弬鏁幫紝涓鐩村埌鍙蟲嫭鍙?/span> 錛?/span>> 鏄竴涓嚱鏁?/span>

       4. 鏌ョ湅鏍囪瘑絎﹀乏杈圭殑絎﹀彿錛?/span>濡傛灉鏄乏鎷彿錛屾壘鍒?/span>瀵瑰簲鐨勫彸鎷彿錛屽茍鎶婃嫭鍙蜂腑鐨勫0鏄庣粍鍚堝湪涓璧?/span>銆傚洖鍒扮2姝ラ噸鏂板紑濮嬫墽琛屻?/span>

       5. 鏌ョ湅鏍囪瘑絎﹀乏杈圭殑絎﹀彿錛?/span>濡傛灉鏄?/span>const, volatile,*, 緇х畫鍚戝乏璇葷洿鍒頒笉鏄繖涓変釜綾誨瀷涓烘銆?/span>閲嶅絎?span>4姝ャ? =>瑙?/span>閲婁負const, volatile,鎸囧悜浠涔堢殑鎸囬拡

       6. 鍓╀笅鐨勭鍙蜂竴騫?/span>璇誨叆 =>static unsigned int

       浣犲彲鑳芥兂闂繖鍑犳灝卞彲浠ヨВ鍐充簡? 鏄殑錛岃繖灝辨槸鎵璋撶殑紲炲瑙g爜鐜?/span>

    涓嬮潰鎴戞潵闅忎究楠岃瘉涓嬭繖涓畻娉?span>:

       鍏堟潵涓畝鍗曠殑

int (*a)[10] 鍜?int* a[10];

   澹版槑寮?span>       姝ラ               鎵ц緇撴灉

int (*a)[10]    絎?span>1姝?nbsp;          鎵懼埌鏈宸﹁竟鐨勬爣璇嗙a錛岃〃紺?span>a鏄竴涓?span>…

int (*)[10]      絎?span>2錛?span>3姝?span>    涓嶅尮閰?/span>

int (*)[10]      絎?span>4姝?span>          鍖歸厤(,鐩存帴璇誨埌),鍖呮嫭*錛岃〃紺?span>a鏄竴涓寚鍚?span>…鎸囬拡.Step2

int [10]          絎?span>2姝?span>           鍖歸厤[10]錛岃〃紺?span>a鏄竴涓寚鍚?span>..size=10鐨勬暟緇勭殑鎸囬拡

int                 絎?span>3錛?span>4錛?span>5    涓嶅尮閰?/span>

緇撴潫            絎?span>6姝?span>           琛ㄧずa鏄竴涓寚鍚?span>int鏁扮粍鐨勬寚閽?/span>

int* a[10]     絎?span>1姝?span>           a鏄竴涓?/span>

int* [10]       絎?span>2姝?span>           a鏄竴涓?span>…size=10鐨勬暟緇?/span>

int*              絎?span>3姝?span>           涓嶅尮閰?/span>

int                絎?span>4姝?span>           鍖歸厤錛?span>a鏄竴涓瓨鏀劇潃鎸囬拡錛?span>size=10鐨勬暟緇?/span>

int                絎?span>5姝?span>           鍖歸厤錛?span>a鏄竴涓瓨鏀劇潃int鎸囬拡錛?span>size=10鐨勬暟緇?/span>

       澶у鐪?/span>鐨勫嚭涓や釜澹版槑鐨勭粨鏋滄槸涓涓槸鎸囬拡錛屼竴涓槸鏁扮粍銆?/span>

    int a1[10];

    int a2[20];

    int (*b)[10];

    int* c[10];

    a[0] = 10;

    b = &a2;    //鎶ラ敊錛?/span>cannot convert from 'int (*)[20]' to 'int (*)[10]'

    b = &a1;    //b鏄寚鍚?/span>size=10鐨勬暟緇勭殑鎸囬拡

    c[0] = &a1[0]; //c鏄竴涓暟緇勶紝閲岄潰瀛樻斁鐨勬槸鎸囬拡錛屾寚閽堟寚鍚?/span>int;


錛堟湭瀹屽緟緇級

]]>
緇撴瀯浣撳榻愰偅鐐逛簨 鐔熺粌c/c++(鍥? http://m.shnenglu.com/iuranus/archive/2009/01/06/71388.html鏀鍗?/dc:creator>鏀鍗?/author>Tue, 06 Jan 2009 15:39:00 GMThttp://m.shnenglu.com/iuranus/archive/2009/01/06/71388.htmlhttp://m.shnenglu.com/iuranus/comments/71388.htmlhttp://m.shnenglu.com/iuranus/archive/2009/01/06/71388.html#Feedback9http://m.shnenglu.com/iuranus/comments/commentRss/71388.htmlhttp://m.shnenglu.com/iuranus/services/trackbacks/71388.html          鍒氬垰瀹屾垚涓涓枃浠剁殑榪佺Щ紼嬪簭錛屽叾涓亣鍒頒簡緇撴瀯浣撳榻愮殑闂錛屾墍浠ユ嬁鍑烘潵璇磋錛屼笌鍚勪綅鍗氬弸浠垎浜?/span>

鎴戠殑紼嬪簭寰堢畝鍗曪紝灝辨槸鎶婁箣鍓嶉氳繃涓涓粨鏋勪綋fwrite鍒版枃浠?/span>A閲岀殑鍐呭璇誨嚭錛岀劧鍚庤漿緇欏彟涓涓粨鏋勪綋淇濆瓨銆傜▼搴忔槸綆鍗曪紝浣嗘垜鎷呭績鐨勬槸涔嬪墠鎶?/strong>緇撴瀯浣?/span>fwrite鍒版枃浠?/span>A鐨勭▼搴忓榻愮粨鏋勪綋瑙勫垯鏄庢牱鐨勶紵涓瀹氳鐭ラ亾瀹冨悧? 褰撶劧浜嗭紝濡傛灉閭d釜紼嬪簭緇撴瀯浣撴槸鎸夌収1瀵歸綈鍐欏叆鐨勶紝鎴戠殑紼嬪簭緇撴瀯浣撴槸鎸夌収4瀵歸綈璇誨叆錛岄偅涓嶅氨緋熶簡錛?/span>

      榪欓噷鎴戝紩鍏ョ粨鏋勪綋瀵歸綈鐨勬蹇碉紝涔熷彲浠ヨ鏄唴瀛樺榻愪簡銆備負浠涔堣鍐呭瓨瀵歸綈鍛紝灝辨槸鏂逛究CPU瀵誨潃浜嗭紝鍏蜂綋鍘熷洜澶у瑕佸弬鑰冭綆楁満浣撶郴緇撴瀯浜嗐傚厛鐪嬩竴涓唴瀛樺榻愮殑渚嬪瓙錛?/span>

      struct example1{

           char a;

           double b;

           long l;

};

      struct example2{

           char a;

           long l;

           double b;

};

澶у綆楃畻緇撴瀯浣撳ぇ灝忥紝鍒濇鎺ヨЕ鐨勫崥鍙嬪彲鑳藉絳旀鏈夌偣鎯婅錛?/span>VC緙栬瘧錛?/span> sizeof鍚庣粨鏋滃垎鍒槸錛?/span>24錛?/span>16銆?/span> 鍚屾牱鏄殑緇撴瀯浣擄紝鎴愬憳鎹簡欏哄簭錛屽ぇ灝忓氨涓嶅悓浜嗐傚叾瀹炲唴瀛樺榻愭湁涓鍒欙紝鍙鐭ラ亾浜嗭紝灝?/span>OK銆傞偅涔堜互涓?/span>5鐐規槸鍏抽敭

1錛?span>          鍐呭瓨瀵歸綈涓庣紪璇戝櫒璁劇疆鏈夊叧錛岄鍏堣鎼炴竻緙栬瘧鍣ㄨ繖涓粯璁ゅ兼槸澶氬皯

2錛?span>          濡傛灉涓嶆兂緙栬瘧鍣ㄩ粯璁ょ殑璇濓紝鍙互閫氳繃#pragma pack(n)鏉ユ寚瀹氭寜鐓?/span>n瀵歸綈

3錛?span>          姣忎釜緇撴瀯浣撳彉閲忓榻愶紝濡傛灉瀵歸綈鍙傛暟n(緙栬瘧鍣ㄩ粯璁ゆ垨鑰呴氳繃pragma鎸囧畾)澶т簬璇ュ彉閲忔墍鍗犲瓧鑺傛暟(m)錛岄偅涔堝氨鎸夌収m瀵歸綈錛屽唴瀛樺亸縐誨悗鐨勫湴鍧鏄?/span>m鐨勫嶆暟錛屽惁鍒欐槸鎸夌収n瀵歸綈錛屽唴瀛樺亸縐誨悗鐨勫湴鍧鏄?/span>n鐨勫嶆暟銆備篃灝辨槸鏈灝忓寲闀垮害瑙勫垯

4錛?span>          緇撴瀯浣撴誨ぇ灝?/span>: 瀵歸綈鍚庣殑闀垮害蹇呴』鏄垚鍛樹腑鏈澶х殑瀵歸綈鍙傛暟鐨勬暣鏁板嶃傛渶澶у榻愬弬鏁版槸浠庣涓夋寰楀埌鐨勩?/span>

5錛?span>          琛ュ厖錛氬鏋滅粨鏋勪綋A涓繕瑕佺粨鏋勪綋B錛岄偅涔?/span>B鐨勫榻愭柟寮忔槸閫夊畠閲岄潰鏈闀跨殑鎴愬憳鐨勫榻愭柟寮?/span>

鎵浠ヨ綆楃粨鏋勪綋澶у皬瑕佽蛋涓夋錛岄鍏堢‘瀹氭槸褰撳墠紼嬪簭鎸夌収鍑犲榻?/span>(鍙傜収1錛?/span>2鐐?/span>)錛屾帴鐫璁$畻姣忎釜緇撴瀯浣撳彉閲忕殑澶у皬鍜屽亸縐?/span>(鍙傜収3錛?/span>5)錛屾渶鍚庤綆楃粨鏋勪綋鎬誨ぇ灝忥紙鍙傜収4錛夈?/span>

      鍏堢畻綆?/span>example1鍚э紝鍋囪緙栬瘧鍣ㄦ槸浠?/span>16瀵歸綈鐨?/span>

      1錛庣‘瀹氭寜鐓у嚑瀵歸綈: 16;

      2錛庣‘瀹氭瘡涓垚鍛樼殑鍋忕Щ錛?/span>a 鍗犱竴涓瓧鑺傦紝16>1, 鎸夌収1瀵歸綈錛岃搗濮嬩綅緗?/span>0錛?/span>0%1 = 0錛岄偅涔?/span>a灝卞瓨鍦?/span>0浣嶇疆錛?/span>b鍗?/span>8涓瓧鑺傦紝16>8錛屾寜鐓?/span>8瀵歸綈錛岃搗濮嬩綅緗氨涓嶈兘鏄?/span>1浜嗭紝鍥犱負瑕佹寜鐓?/span>8瀵歸綈錛屾墍浠ユ渶榪戠殑鍋忕Щ璧峰浣嶇疆鏄?/span>8錛?/span> 8%8 =0, 閭d箞b灝卞瓨鍦ㄤ綅緗?/span>8-15鐨勪綅緗紱l鍗?/span>4涓瓧鑺傦紝16>4錛屾寜鐓?/span>4瀵歸綈錛岃搗濮嬩綅緗?/span>16錛?/span> 16%4=0錛岄偅涔?/span>l灝卞瓨鍦ㄤ綅緗?/span>16-19鐨勪綅緗傛墍浠ョ粨鏋勪綋浠?/span>0鍒?/span>19涓鍏卞崰鐢?/span>20涓瓧鑺?/span>

      3錛庣粨鏋勪綋鎬誨ぇ灝忥細鎴愬憳涓渶澶х殑瀵歸綈鍙傛暟鏄?/span>b鐨?/span>8瀵歸綈錛屾墍浠?/span>20錛?/span>8!=0, 24鍒氬ソ銆?/span>

      鐪熺殑寰堟悶錛佸悓鐞嗚綆?/span>example2搴旇鏄?/span>16錛?/span>

     鍐嶄婦涓粨鏋勪綋宓屽鐨勪緥瀛愬惂錛?/span>

#pragma pack(push)

#pragma pack(8)

struct test1{

      int a;

      char b;

      int c[20]

long l;

} ;

struct test2{

      char a1;

      char a2;

      struct test1 t1;

      double b1;

}

#pragma pack(pop)

鍏堣綆?/span>test1, 8瀵歸綈錛?/span>a鍗犵敤0-3錛?/span>b鍗犵敤4錛?/span>c鍗犵敤8錛?/span>87錛?/span>l鍗犵敤88錛?/span>91錛屼竴鍏?/span>92涓瓧鑺傘傛垚鍛樹腑鏈澶х殑瀵歸綈鍙傛暟鏄?/span>int浜?/span>92%4=0;

鍐嶈綆?/span>test2, a1z鍗犵敤0錛?/span>a2鍗犵敤1錛?/span>t1鍛紝4 % 4 (test1閲岄潰鏈闀跨殑鎴愬憳鐨勫榻愭柟寮? = 0, 4-95錛?/span>b1鍗?/span>96鍒?/span>103錛涗竴鍏?/span>104涓瓧鑺傦紝鎴愬憳涓渶澶х殑瀵歸綈鍙傛暟鏄?/span>double浜?/span>104%8=0; 鎵浠ユ槸104.


      閭e叧浜庢垜鏂囩珷寮澶存彁鍒扮殑閭d釜鏂囦歡杞崲錛屾垜鐜板湪鍙鐭ラ亾鍘熷紼嬪簭鏄寜鐓т粈涔堝榻愮殑錛岀劧鍚庡湪鏂扮▼搴忎腑鎸囧畾鎸夌収鍑犲榻愬氨鍙互浜嗭紝鍝堝搱錛?nbsp;           
      
      鎸ゆ椂闂村啓鐨勶紝
鏈夌殑鍦版柟鏈夐仐婕忥紝璇峰悇浣嶆寚姝o紒



]]>
public緇ф壙鍚庯紝鐖剁被涓庡瓙綾昏闂殣钘?鐔熺粌c/c++(涓?http://m.shnenglu.com/iuranus/archive/2009/01/05/71210.html鏀鍗?/dc:creator>鏀鍗?/author>Mon, 05 Jan 2009 03:16:00 GMThttp://m.shnenglu.com/iuranus/archive/2009/01/05/71210.htmlhttp://m.shnenglu.com/iuranus/comments/71210.htmlhttp://m.shnenglu.com/iuranus/archive/2009/01/05/71210.html#Feedback0http://m.shnenglu.com/iuranus/comments/commentRss/71210.htmlhttp://m.shnenglu.com/iuranus/services/trackbacks/71210.html         銆奅ffective C++銆嬬殑絎叚绔犺妭緇ф壙涓庨潰鍚戝璞¤璁¤姳浜嗗ぇ閮ㄥ垎鐨勭瘒騫呭湪浠嬬粛緇ф壙閬帺(Hiding Inherited Name)錛岄偅鎴戜篃鏁堜豢涓嬪ぇ甯堬紝鍋氫釜灝忕殑鎬葷粨銆?br>         public緇ф壙鐨勭洰鐨勬槸瑕佸緩绔嬬埗瀛愮被鐨刬s-a鍏崇郴錛屼篃灝辨槸璇寸敤鍒扮埗綾葷殑鍦版柟錛屽湪瀛愮被涓瀹氳兘鐢ㄣ傜幇瀹炵殑浠g爜緙栧啓涓紝鎴戜滑涓昏涔熸槸鐢╬ublic緇ф壙錛屾墍浠ユ瘡涓漢閮芥湁鑷繁涓濂楃戶鎵跨殑鍐欐硶鍜岃皟鐢紝鐩村埌鐪嬪埌Effecitve C++鏃訛紝鎵嶄細鍙戠幇榪樻湁寰堝鍏跺畠鐨勭敤娉曪紝鍦ㄨ繖閲屾垜騫朵笉榧撳姳澶у灝濊瘯鍚勭鍐欐硶錛屾瘯绔熶唬鐮佽紼沖畾錛屾垜鍙槸鎯蟲妸涓浜涘彲鑳界殑褰㈠紡琛ㄧ幇鍑烘潵錛屼緵澶у鍙傝冦?br>class Base
{
 public:
       virtual void fn() = 0;
       virtual void fn(int i){printf("\n Base: fn(int)\n");};
       virtual void fn2() {printf("\n Base: void fn2(int)\n");}
       void fn3() {printf("\n Base: fn3()\n");}
       void fn4(){printf("\n Base: fn4()\n");}
};

class ClassA : public Base
{
public:
      ClassA(int n, int d);
      // using Base::fn2;
      virtual void fn(){printf("\n ClassA: fn()\n");};
       virtual void fn(int i){printf("\n ClassA: fn(INT)\n");};

       virtual void fn2(int i) {printf("\n ClassA: fn2(INT)\n"); }

       void fn3() {printf("\n ClassA: fn3()\n");}
       void fn4(int i){printf("\n ClassA: fn4()\n");}
 };
int main()

Base* pBase1 = new ClassA(10, 20);
 pBase1->fn();              //OK錛孋lassA: fn()
 pBase1->fn(11);          //OK錛孋lassA: fn(INT)
 pBase1->fn2();            //OK錛孊ase: void fn2(int)
 pBase1->fn2(2);          //NO, 涓嶈兘璁塊棶
 pBase1->fn3();            //OK錛孊ase: fn3()
 pBase1->fn4();            //OK錛孊ase: fn4()
 pBase1->fn4(2);          //NO錛屼笉鑳借闂?br> printf("\n============================================\n");
 ClassA* pDerived = new ClassA(10, 20);
 pDerived->fn();            //OK錛孋lassA: fn()
 pDerived->fn(1);          //OK錛孋lassA: fn(INT)
 pDerived->fn2();          //NO錛屼笉鑳借闂?br> pDerived->fn2(2);        //OK錛孋lassA: fn2(INT)
 pDerived->fn3();          //OK錛孋lassA: fn3()
 pDerived->fn4();          //NO錛屼笉鑳借闂?br> pDerived->fn4(2);        //NO錛孋lassA: fn4(INT)
 printf("\n============================================\n");
 return 0;      
}


瀛愮被鐖剁被鍚屽悕virtual鍑芥暟(鍙傛暟鐩稿悓)錛?鐢ㄥ瓙綾葷殑鎸囬拡錛屽紩鐢紝瀵硅薄璁塊棶鏃訛紝瀛愮被浼氳鐩栫埗綾繪柟娉?鍙兘璁塊棶瀛愮被鏂規硶)銆?br>瀛愮被鐖剁被鍚屽悕virtual鍑芥暟(鍙傛暟鐩稿悓)錛?鐢ㄧ埗綾葷殑鎸囬拡錛屽紩鐢紝瀵硅薄璁塊棶鏃訛紝瀛愮被浼氳鐩栫埗綾繪柟娉?鍙兘璁塊棶瀛愮被鏂規硶)銆?br>瀛愮被鐖剁被鍚屽悕virtual鍑芥暟(鍙傛暟涓嶅悓)錛?鐢ㄥ瓙綾葷殑鎸囬拡錛屽紩鐢紝瀵硅薄璁塊棶鏃訛紝瀛愮被浼氳鐩栫埗綾繪柟娉?鍙兘璁塊棶瀛愮被鏂規硶)銆?br>瀛愮被鐖剁被鍚屽悕virtual鍑芥暟(鍙傛暟涓嶅悓)錛?鐢ㄧ埗綾葷殑鎸囬拡錛屽紩鐢紝瀵硅薄璁塊棶鏃訛紝鐖剁被浼氳鐩栧瓙綾繪柟娉?鍙兘璁塊棶鐖剁被鏂規硶)銆?br>瀛愮被鐖剁被鍚屽悕virtual鍑芥暟(鍑芥暟綾誨瀷涓嶅悓const/non-const)錛?鐢ㄥ瓙綾葷殑鎸囬拡錛屽紩鐢紝瀵硅薄璁塊棶鏃訛紝瀛愮被浼氳鐩栫埗綾繪柟娉?鍙兘璁塊棶瀛愮被鏂規硶)銆?br>瀛愮被鐖剁被鍚屽悕virtual鍑芥暟(鍑芥暟綾誨瀷涓嶅悓const/non-const)錛?鐢ㄧ埗綾葷殑鎸囬拡錛屽紩鐢紝瀵硅薄璁塊棶鏃訛紝鐖剁被浼氳鐩栧瓙綾繪柟娉?鍙兘璁塊棶鐖剁被鏂規硶)銆?/p>

緇撹錛氬弬鏁板拰鍑芥暟綾誨瀷鏄痗++緙栬瘧鍣ㄥ垽鏂涓嶈澶氭佺殑鍏抽敭鍥犵礌銆傛敞: 榪斿洖綾誨瀷涓嶅悓鏃訛紝緙栬瘧鍣ㄤ細鎶ラ敊錛寁irtual涓嶈兘鍜宻tatic榪炵敤銆傞潤鎬佹垚鍛樺嚱鏁幫紝娌℃湁闅愯棌鐨則his鎸囬拡錛寁irtual鍑芥暟涓瀹氳閫氳繃瀵硅薄鏉ヨ皟鐢紝鏃㈣this鎸囬拡銆?br>鏀硅繘:錛氬鏋滃瓙綾繪寚閽堟兂璁塊棶鍒扮埗綾伙紝鍙互鍦ㄥ瓙綾婚噷鍔犲叆:using 鐖剁被鍚?:鍑芥暟鍚嶏紱濡俻Derived->fn2(); 璁塊棶鐖剁被鏂規硶錛屽湪ClassA閲岄潰鍔犲叆using Base::fn2錛屽氨鍙互璁塊棶浜嗐傚鏋滅埗綾繪寚閽堟兂璁塊棶鍒板瓙綾伙紝灝遍渶瑕佹寚閽堣漿鎹簡銆?br>
瀛愮被鐖剁被鍚屽悕non-virtual鍑芥暟(鏃犺鍙傛暟/榪斿洖/鍑芥暟綾誨瀷(const鎴杝tatic))錛岀敤瀛愮被鐨勬寚閽堬紝寮曠敤錛屽璞¤闂紝瀛愮被浼氳鐩栫埗綾繪柟娉?鍙兘璁塊棶瀛愮被鏂規硶)銆?br>瀛愮被鐖剁被鍚屽悕non-virtual鍑芥暟(鏃犺鍙傛暟/榪斿洖/鍑芥暟綾誨瀷(const鎴杝tatic))錛岀敤鐖剁被鐨勬寚閽堬紝寮曠敤錛屽璞¤闂紝鐖剁被浼氳鐩栧瓙綾繪柟娉?鍙兘璁塊棶鐖剁被鏂規硶)銆?br>
緇撹: non-virtual鍑芥暟錛屾棦娌℃湁浠諱綍澶氭佹晥鏋滐紝濡傛灉鐖剁被瑕佽闂瓙綾伙紝鍙敤鎸囬拡杞崲銆?nbsp;  

         鎵璋撳ぇ閬撹嚦綆錛屾兂蹇呭ぇ瀹剁湅鐫榪欎釜閮界儲錛屾垜涔熸槸銆傛兂浜嗘兂搴旇榪欐牱琛ㄨ揪鏈綆鍗曪細
 
         瀛愮被public緇ф壙鐖剁被鐨勫嚱鏁幫紝鍞湁婊¤凍(鍙傛暟錛岃繑鍥炲鹼紝鍑芥暟綾誨瀷鐩稿悓&鐖剁被鏄痸irtual)鍑芥暟錛岀埗綾葷殑鎸囬拡錛屽紩鐢?涔熸寚閽堝疄鐜扮殑)鑳藉澶氭佺殑璁塊棶瀛愮被錛屽惁鍒欑埗綾繪寚閽堝彧鑳借闂埗綾葷殑鏂規硶銆?nbsp;
         
         瀛愮被public緇ф壙鐖剁被鐨勫嚱鏁幫紝瀛愮被鐨勬柟娉曞悕浼氶伄鎺╃埗綾葷殑鐩稿悓鍚嶇殑鏂規硶銆傚瓙綾昏鎯寵闂埗綾葷殑鏂規硶錛屼嬌鐢╱sing 鐖剁被鍚?:鍑芥暟鍚嶃?nbsp;   
       
         鍏蜂綋鐨勫師鍥犳垜瑙夊緱鍙兘榪樻槸寰楁壘鏃墮棿鎷滆涓嬪欐澃璇戠殑銆奀++瀵硅薄妯″瀷銆嬶紝鐪嬬湅鍒板簳榪欎釜涓滆タ鏄庝箞璁捐鐨勩?br>



]]>
錛堣漿杞斤級鍥炬枃渚嬭ВC++綾葷殑澶氶噸緇ф壙涓庤櫄鎷熺戶鎵?/title><link>http://m.shnenglu.com/iuranus/archive/2008/12/18/69722.html</link><dc:creator>鏀鍗?/dc:creator><author>鏀鍗?/author><pubDate>Thu, 18 Dec 2008 03:15:00 GMT</pubDate><guid>http://m.shnenglu.com/iuranus/archive/2008/12/18/69722.html</guid><wfw:comment>http://m.shnenglu.com/iuranus/comments/69722.html</wfw:comment><comments>http://m.shnenglu.com/iuranus/archive/2008/12/18/69722.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/iuranus/comments/commentRss/69722.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/iuranus/services/trackbacks/69722.html</trackback:ping><description><![CDATA[鍦ㄨ繃鍘葷殑瀛︿範涓紝鎴戜滑濮嬬粓鎺ヨЕ鐨勫崟涓被鐨勭戶鎵匡紝浣嗘槸鍦ㄧ幇瀹炵敓媧諱腑錛屼竴浜涙柊浜嬬墿寰寰浼氭嫢鏈変袱涓垨鑰呬袱涓互涓婁簨鐗╃殑灞炴э紝涓轟簡瑙e喅榪欎釜闂錛孋++寮曞叆浜嗗閲嶇戶鎵跨殑姒傚康錛?font color=#ff0000><strong>C++鍏佽涓轟竴涓淳鐢熺被鎸囧畾澶氫釜鍩虹被錛岃繖鏍風殑緇ф壙緇撴瀯琚О鍋氬閲嶇戶鎵?/strong></font>銆? <p>銆銆涓句釜渚嬪瓙錛屼氦閫氬伐鍏風被鍙互媧劇敓鍑烘苯杞﹀拰鑸逛袱涓瓙綾伙紝浣嗘嫢鏈夋苯杞﹀拰鑸瑰叡鍚岀壒鎬ф按闄嗕袱鐢ㄦ苯杞﹀氨蹇呴』緇ф壙鏉ヨ嚜姹借濺綾諱笌鑸圭被鐨勫叡鍚屽睘鎬с?<br><br>銆銆鐢辨鎴戜滑涓嶉毦鎯沖嚭濡備笅鐨勫浘渚嬩笌浠g爜錛?/p> <p align=center><img alt="" src="http://www.pconline.com.cn/pcedu/empolder/gj/c/0503/pic/21cppc01.gif" border=0></p> <p>銆<font style="BACKGROUND-COLOR: #b000b0" color=#ffffff>褰撲竴涓淳鐢熺被瑕佷嬌鐢ㄥ閲嶇戶鎵跨殑鏃跺欙紝蹇呴』鍦ㄦ淳鐢熺被鍚嶅拰鍐掑彿涔嬪悗鍒楀嚭鎵鏈夊熀綾葷殑綾誨悕錛屽茍鐢ㄩ楀ソ鍒嗛殧銆?/font> </p> <p class=code clear=both><font color=green>  </font> <br>  <br>#include <<font color=maroon>iostream</font>>  <br><font color=blue>using</font> <font color=blue>namespace</font> std;  <br>  <br><font color=blue>class</font> Vehicle  <br>{  <br>    <font color=blue>public</font>:  <br>        Vehicle(<font color=blue>int</font> weight <font color=red>=</font> 0)  <br>        {  <br>            Vehicle::weight <font color=red>=</font> weight;  <br>        }  <br>        <font color=blue>void</font> SetWeight(<font color=blue>int</font> weight)  <br>        {  <br>            <font color=maroon>cout</font><<"閲嶆柊璁劇疆閲嶉噺"<<endl;  <br>            Vehicle::weight <font color=red>=</font> weight;  <br>        }  <br>        <font color=blue>virtual</font> <font color=blue>void</font> ShowMe() <font color=red>=</font> 0;  <br>    <font color=blue>protected</font>:  <br>        <font color=blue>int</font> weight;  <br>};  <br><font color=blue>class</font> Car:<font color=blue>public</font> Vehicle<font color=green>//姹借濺 </font> <br>{  <br>    <font color=blue>public</font>:  <br>        Car(<font color=blue>int</font> weight=0,<font color=blue>int</font> aird=0):Vehicle(weight)  <br>        {  <br>            Car::aird <font color=red>=</font> aird;  <br>        }  <br>        <font color=blue>void</font> ShowMe()  <br>        {  <br>            <font color=maroon>cout</font><<"鎴戞槸姹借濺錛?<<endl;  <br>        }  <br>    <font color=blue>protected</font>:  <br>        <font color=blue>int</font> aird;  <br>};  <br>  <br><font color=blue>class</font> Boat:<font color=blue>public</font> Vehicle<font color=green>//鑸?nbsp;</font> <br>{  <br>    <font color=blue>public</font>:  <br>        Boat(<font color=blue>int</font> weight=0,<font color=blue>float</font> tonnage=0):Vehicle(weight)  <br>        {  <br>            Boat::tonnage <font color=red>=</font> tonnage;  <br>        }  <br>        <font color=blue>void</font> ShowMe()  <br>        {  <br>            <font color=maroon>cout</font><<"鎴戞槸鑸癸紒"<<endl;  <br>        }  <br>    <font color=blue>protected</font>:  <br>        <font color=blue>float</font> tonnage;  <br>};  <br>  <br><font color=blue>class</font> AmphibianCar:<font color=blue>public</font> Car,<font color=blue>public</font> Boat<font color=green>//姘撮檰涓ょ敤姹借濺,澶氶噸緇ф壙鐨勪綋鐜?nbsp;</font> <br>{  <br>    <font color=blue>public</font>:  <br>        AmphibianCar(<font color=blue>int</font> weight,<font color=blue>int</font> aird,<font color=blue>float</font> tonnage)  <br>        :Vehicle(weight),Car(weight,aird),Boat(weight,tonnage)  <br>        <font color=green>//澶氶噸緇ф壙瑕佹敞鎰忚皟鐢ㄥ熀綾繪瀯閫犲嚱鏁?nbsp;</font> <br>        {  <br>          <br>        }  <br>        <font color=blue>void</font> ShowMe()  <br>        {  <br>            <font color=maroon>cout</font><<"鎴戞槸姘撮檰涓ょ敤姹借濺錛?<<endl;  <br>        }  <br>};  <br><font color=blue>int</font> <font color=blue>main</font>()  <br>{  <br>    AmphibianCar a(4,200,1.35f);<font color=green>//閿欒 </font> <br>    a.SetWeight(3);<font color=green>//閿欒 </font> <br>    system("pause");   <br>}</p> <p>銆銆涓婇潰鐨勪唬鐮佷粠琛ㄩ潰鐪嬶紝鐪嬩笉鍑烘湁鏄庢樉鐨勮鍙戦敊璇紝浣嗘槸瀹冩槸涓嶈兘澶熼氳繃緙栬瘧鐨勩傝繖鏈夋槸涓轟粈涔堝憿錛?<br>銆銆榪欐槸鐢變簬澶氶噸緇ф壙甯︽潵鐨?font color=#ff0000><font color=#ff0000>緇ф壙鐨勬ā緋婃?/font></font>甯︽潵鐨勯棶棰樸?/p> <p> 銆鍏堢湅濡備笅鐨勫浘紺猴細 </p> <p> </p> <p align=center><img alt="" src="http://www.pconline.com.cn/pcedu/empolder/gj/c/0503/pic/21cppc02.gif" border=0></p> <p>銆銆鍦ㄥ浘涓繁綰㈣壊鏍囪鍑烘潵鐨勫湴鏂規鏄富瑕侀棶棰樻墍鍦紝姘撮檰涓ょ敤姹借濺綾葷戶鎵夸簡鏉ヨ嚜Car綾諱笌Boat綾葷殑灞炴т笌鏂規硶錛孋ar綾諱笌Boat綾誨悓涓篈mphibianCar綾葷殑鍩虹被錛屽湪鍐呭瓨鍒嗛厤涓夾mphibianCar鑾峰緱浜嗘潵鑷袱涓被鐨凷etWeight()鎴愬憳鍑芥暟錛屽綋鎴戜滑璋冪敤a.SetWeight(3)鐨勬椂鍊欒綆楁満涓嶇煡閬撳浣曢夋嫨鍒嗗埆灞炰簬涓や釜鍩虹被鐨勮閲嶅鎷ユ湁浜嗙殑綾繪垚鍛樺嚱鏁癝etWeight()銆?</p> <p>銆銆鐢變簬榪欑妯$硦闂鐨勫瓨鍦ㄥ悓鏍蜂篃瀵艱嚧浜咥mphibianCar a(4,200,1.35f);鎵ц澶辮觸錛岀郴緇熶細浜х敓Vehicle”涓嶆槸鍩烘垨鎴愬憳鐨勯敊璇?/p> <p>銆銆浠ヤ笂闈㈢殑浠g爜涓轟緥錛屾垜浠鎯寵AmphibianCar綾繪棦鑾峰緱涓涓猇ehicle鐨勬嫹璐濓紝鑰屼笖鍙堝悓鏃跺叡浜敤Car綾諱笌Boat綾葷殑鏁版嵁鎴愬憳涓庢垚鍛樺嚱鏁板氨蹇呴』閫氳繃C++鎵鎻愪緵鐨?font color=#ff0000><strong>铏氭嫙緇ф壙</strong></font>鎶鏈潵瀹炵幇銆?/p> <p>銆銆鎴戜滑鍦–ar綾誨拰Boat綾葷戶鎵縑ehicle綾誨嚭錛屽湪鍓嶉潰鍔犱笂virtual鍏抽敭瀛楀氨鍙互瀹炵幇铏氭嫙緇ф壙錛屼嬌鐢ㄨ櫄鎷熺戶鎵垮悗錛?font style="BACKGROUND-COLOR: #b000b0" color=#ffffff>褰撶郴緇熺鍒板閲嶇戶鎵跨殑鏃跺欏氨浼氳嚜鍔ㄥ厛鍔犲叆涓涓猇ehicle鐨勬嫹璐濓紝褰撳啀嬈¤姹備竴涓猇ehicle鐨勬嫹璐濈殑鏃跺欏氨浼氳蹇界暐錛屼繚璇佺戶鎵跨被鎴愬憳鍑芥暟鐨勫敮涓鎬?/font>銆?<br><br>銆銆淇敼鍚庣殑浠g爜濡備笅錛屾敞鎰忚瀵熷彉鍖栵細</p> <p class=code><br>#include <<font color=maroon>iostream</font>>  <br><font color=blue>using</font> <font color=blue>namespace</font> std;  <br>  <br><font color=blue>class</font> Vehicle  <br>{  <br>    <font color=blue>public</font>:  <br>        Vehicle(<font color=blue>int</font> weight <font color=red>=</font> 0)  <br>        {  <br>            Vehicle::weight <font color=red>=</font> weight;  <br>            <font color=maroon>cout</font><<"杞藉叆Vehicle綾繪瀯閫犲嚱鏁?<<endl;  <br>        }  <br>        <font color=blue>void</font> SetWeight(<font color=blue>int</font> weight)  <br>        {  <br>            <font color=maroon>cout</font><<"閲嶆柊璁劇疆閲嶉噺"<<endl;  <br>            Vehicle::weight <font color=red>=</font> weight;  <br>        }  <br>        <font color=blue>virtual</font> <font color=blue>void</font> ShowMe() <font color=red>=</font> 0;  <br>    <font color=blue>protected</font>:  <br>        <font color=blue>int</font> weight;  <br>};  <br><font color=blue>class</font> Car:<font color=blue>virtual</font> <font color=blue>public</font> Vehicle<font color=green>//姹借濺錛岃繖閲屾槸铏氭嫙緇ф壙 </font> <br>{  <br>    <font color=blue>public</font>:  <br>        Car(<font color=blue>int</font> weight=0,<font color=blue>int</font> aird=0):Vehicle(weight)  <br>        {  <br>            Car::aird <font color=red>=</font> aird;  <br>            <font color=maroon>cout</font><<"杞藉叆Car綾繪瀯閫犲嚱鏁?<<endl;  <br>        }  <br>        <font color=blue>void</font> ShowMe()  <br>        {  <br>            <font color=maroon>cout</font><<"鎴戞槸姹借濺錛?<<endl;  <br>        }  <br>    <font color=blue>protected</font>:  <br>        <font color=blue>int</font> aird;  <br>};  <br>  <br><font color=blue>class</font> Boat:<font color=blue>virtual</font> <font color=blue>public</font> Vehicle<font color=green>//鑸?榪欓噷鏄櫄鎷熺戶鎵?nbsp;</font> <br>{  <br>    <font color=blue>public</font>:  <br>        Boat(<font color=blue>int</font> weight=0,<font color=blue>float</font> tonnage=0):Vehicle(weight)  <br>        {  <br>            Boat::tonnage <font color=red>=</font> tonnage;  <br>            <font color=maroon>cout</font><<"杞藉叆Boat綾繪瀯閫犲嚱鏁?<<endl;  <br>        }  <br>        <font color=blue>void</font> ShowMe()  <br>        {  <br>            <font color=maroon>cout</font><<"鎴戞槸鑸癸紒"<<endl;  <br>        }  <br>    <font color=blue>protected</font>:  <br>        <font color=blue>float</font> tonnage;  <br>};  <br>  <br><font color=blue>class</font> AmphibianCar:<font color=blue>public</font> Car,<font color=blue>public</font> Boat<font color=green>//姘撮檰涓ょ敤姹借濺,澶氶噸緇ф壙鐨勪綋鐜?nbsp;</font> <br>{  <br>    <font color=blue>public</font>:  <br>        AmphibianCar(<font color=blue>int</font> weight,<font color=blue>int</font> aird,<font color=blue>float</font> tonnage)  <br>        :Vehicle(weight),Car(weight,aird),Boat(weight,tonnage)  <br>        <font color=green>//澶氶噸緇ф壙瑕佹敞鎰忚皟鐢ㄥ熀綾繪瀯閫犲嚱鏁?nbsp;</font> <br>        {  <br>            <font color=maroon>cout</font><<"杞藉叆AmphibianCar綾繪瀯閫犲嚱鏁?<<endl;  <br>        }  <br>        <font color=blue>void</font> ShowMe()  <br>        {  <br>            <font color=maroon>cout</font><<"鎴戞槸姘撮檰涓ょ敤姹借濺錛?<<endl;  <br>        }  <br>        <font color=blue>void</font> ShowMembers()  <br>        {  <br>            <font color=maroon>cout</font><<"閲嶉噺錛?<<weight<<"欏匡紝"<<"絀烘皵鎺掗噺錛?<<aird<<"CC錛?<<"鎺掓按閲忥細"<<tonnage<<"欏?<<endl;  <br>        }  <br>};  <br><font color=blue>int</font> <font color=blue>main</font>()  <br>{  <br>    AmphibianCar a(4,200,1.35f);  <br>    a.ShowMe();  <br>    a.ShowMembers();  <br>    a.SetWeight(3);  <br>    a.ShowMembers();  <br>    system("pause");   <br>}</p> <p>銆銆娉ㄦ剰瑙傚療綾繪瀯閫犲嚱鏁扮殑鏋勯犻『搴忋?<br><br><strong>銆銆铏界劧璇磋櫄鎷熺戶鎵夸笌铏氬嚱鏁版湁涓瀹氱浉浼肩殑鍦版柟錛屼絾璇昏呭姟蹇呰璁頒綇錛屼粬浠箣闂存槸緇濆娌℃湁浠諱綍鑱旂郴鐨勶紒</strong></p> <img src ="http://m.shnenglu.com/iuranus/aggbug/69722.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/iuranus/" target="_blank">鏀鍗?/a> 2008-12-18 11:15 <a href="http://m.shnenglu.com/iuranus/archive/2008/12/18/69722.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C++鎬庝箞瀹炵幇AOPhttp://m.shnenglu.com/iuranus/archive/2007/12/14/38507.html鏀鍗?/dc:creator>鏀鍗?/author>Fri, 14 Dec 2007 06:02:00 GMThttp://m.shnenglu.com/iuranus/archive/2007/12/14/38507.htmlhttp://m.shnenglu.com/iuranus/comments/38507.htmlhttp://m.shnenglu.com/iuranus/archive/2007/12/14/38507.html#Feedback5http://m.shnenglu.com/iuranus/comments/commentRss/38507.htmlhttp://m.shnenglu.com/iuranus/services/trackbacks/38507.html            AOP鎶鏈殑璇炵敓騫朵笉綆楁櫄錛屾棭鍦?990騫村紑濮嬶紝鏉ヨ嚜Xerox Palo Alto Research Lab錛堝嵆PARC錛夌殑鐮旂┒浜哄憳灝卞闈㈠悜瀵硅薄鎬濇兂鐨勫眬闄愭ц繘琛屼簡鍒嗘瀽銆備粬浠爺絀跺嚭浜嗕竴縐嶆柊鐨勭紪紼嬫濇兂錛屽熷姪榪欎竴鎬濇兂鎴栬鍙互閫氳繃鍑忓皯浠g爜閲嶅妯″潡浠庤屽府鍔╁紑鍙戜漢鍛樻彁楂樺伐浣滄晥鐜囥傞殢鐫鐮旂┒鐨勯愭笎娣卞叆錛孉OP涔熼愭笎鍙戝睍鎴愪竴濂楀畬鏁寸殑紼嬪簭璁捐鎬濇兂錛屽悇縐嶅簲鐢ˋOP鐨勬妧鏈篃搴旇繍鑰岀敓銆?/p>

            AOP鎶鏈湪Java騫沖彴涓嬫槸鏈鍏堝緱鍒板簲鐢ㄧ殑銆傚氨鍦≒ARC瀵逛簬闈㈠悜鏂歸潰緙栫▼榪涜鐮旂┒鐨勫悓鏃訛紝緹庡浗Northeastern University鐨勫崥澹敓Cristina Lopes鍜屽叾鍚屼簨涔熷紑濮嬩簡綾諱技鐨勬濊冦傛渶緇堬紝緹庡浗鍥介槻鍏堣繘鎶鏈爺絀惰鍒掔講錛圖efense Advanced Research Projects Agency鍗矰ARPA錛夋敞鎰忓埌浜嗚繖欏瑰伐浣滐紝騫舵彁渚涗簡縐戠爺緇忚垂錛岄紦鍔卞皢浜岃呯殑宸ヤ綔鎴愭灉緇撳悎璧鋒潵銆備粬浠氳繃瀹氫箟涓濂桱ava璇█鐨勬墿灞曠郴緇燂紝浣垮紑鍙戣呭彲浠ユ柟渚跨殑榪涜闈㈠悜鏂歸潰鐨勫紑鍙戯紝榪欏鎵╁睍緋葷粺琚О涓篈spectJ銆備箣鍚庯紝AspectJ鍦?002騫磋杞緇橢clipse Foundation錛屼粠鑰屾垚涓哄湪寮婧愮ぞ鍖轟腑AOP鎶鏈殑鍏堥攱錛屼篃鏄洰鍓嶆渶涓烘祦琛岀殑AOP宸ュ叿銆?br>
            閭d箞瀵逛簬C++鎶鏈潵璇達紝鎬庢牱鏉ュ紑灞旳OP鍛紝騫稿ソ鏈塐laf Spinczyk 榪欐牱鐨勪漢瀛樺湪錛屾垜浠篃鏈変簡aspect c++銆傚畠浣跨敤浜嗘彃鍏ヤ唬鐮佺殑鏂規硶銆備竴涓吀鍨嬬殑Aspect C++紺轟緥闇瑕佷竴涓狢++婧愭枃浠?.cpp)銆佷竴涓猘spect C++婧愭枃浠?.ah)錛岄氳繃ac++緙栬瘧鍣ㄦ妸C++婧愭枃浠跺拰aspect C++婧愭枃浠惰漿鎹㈡垚娣峰悎鐨凜++婧愭枃浠?濡傛灉鏈夊ご鏂囦歡涔熶細杞崲)錛屾渶鍚庨氳繃鏅氱殑C++緙栬瘧鍣ㄧ紪璇戝嚭鍙墽琛屾枃浠躲?br> 
            閭d箞鎴戠幇鍦ㄥ鏋滀笉鎯崇敤絎笁鏂圭紪璇戝櫒錛岃嚜宸卞幓瀹炵幇AOP錛屼笉鐭ラ亾CPPBLOG閲岀殑澶ц櫨鏈変粈涔堟兂娉曪紵



]]>
灝忚皥const 鐔熺粌C/C++錛堜簩錛?/title><link>http://m.shnenglu.com/iuranus/archive/2007/10/11/33967.html</link><dc:creator>鏀鍗?/dc:creator><author>鏀鍗?/author><pubDate>Thu, 11 Oct 2007 13:09:00 GMT</pubDate><guid>http://m.shnenglu.com/iuranus/archive/2007/10/11/33967.html</guid><wfw:comment>http://m.shnenglu.com/iuranus/comments/33967.html</wfw:comment><comments>http://m.shnenglu.com/iuranus/archive/2007/10/11/33967.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://m.shnenglu.com/iuranus/comments/commentRss/33967.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/iuranus/services/trackbacks/33967.html</trackback:ping><description><![CDATA[     鎽樿: const鍏抽敭瀛楀彲浠ヨ鏄敤閫斿箍娉涳紝浠庡鍙橀噺鐨勯檺瀹氬埌瀵瑰嚱鏁扮殑闄愬畾錛屽挨鍏舵槸閭d釜鎸囧悜甯擱噺鐨勬寚閽堬紙const int *p錛夛紝鎸囬拡甯擱噺(int * const p)錛屾寚鍚戝父閲忕殑鎸囬拡甯擱噺(const int* const p)鏇磋鍒濆鑰呮懜涓嶅埌澶磋剳銆傝繖閲屾垜涓昏鎯蟲弿榪頒笅鏈榪戦」鐩腑鍏充簬const鐨勪竴涓棶棰樸傚叾瀹炴湁鐨勬椂鍊欒繕涓嶈兘琚〃闈㈢幇璞¤糠鎯戜簡錛岀畝鍗曚唬鐮佸涓?nbsp; <a href='http://m.shnenglu.com/iuranus/archive/2007/10/11/33967.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/iuranus/aggbug/33967.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/iuranus/" target="_blank">鏀鍗?/a> 2007-10-11 21:09 <a href="http://m.shnenglu.com/iuranus/archive/2007/10/11/33967.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>榪斿洖鍐呴儴闈欐佹垚鍛? 鐔熺粌C/C++錛堜竴錛? http://m.shnenglu.com/iuranus/archive/2007/04/13/21798.html鏀鍗?/dc:creator>鏀鍗?/author>Fri, 13 Apr 2007 08:07:00 GMThttp://m.shnenglu.com/iuranus/archive/2007/04/13/21798.htmlhttp://m.shnenglu.com/iuranus/comments/21798.htmlhttp://m.shnenglu.com/iuranus/archive/2007/04/13/21798.html#Feedback1http://m.shnenglu.com/iuranus/comments/commentRss/21798.htmlhttp://m.shnenglu.com/iuranus/services/trackbacks/21798.html        鐪嬪畬闄堢殦鐨?/span>C/C++榪斿洖鍐呴儴闈欐佹垚鍛樼殑闄烽槺錛岃璇嗗埌鑷繁紜疄瀵?/span>C/C++鏈韓璇硶鐮旂┒鐨勪笉澶熸竻妤氾紝鎵浠ヨ繖浜涙椂闂村氨鍦ㄥ鍩烘湰鐭ヨ瘑榪涜鍥為【錛岀湡鐨勮繕铔湁鎰忔濈殑銆?/span>

        鎴戝湪鐢?/span>C/C++鍑芥暟鏃訛紝浠庢病鏈夊叏闈㈣冭檻榪囪鍑芥暟鍔熻兘錛屽彧鏄煡閬撳畠鑳藉仛錛屽熀鏈鍑芥暟緇嗚妭娌℃湁浜嗚В錛屽氨鎷夸笅闈㈣繖涓嚱鏁板仛涓緥瀛愶細

        char *inet_ntoa(struct in_addr in);

        struct in_addr {      unsigned long int s_addr; }

 

        鐪嬪埌榪欎釜鎴戝氨鑳芥兂鍒拌鍑芥暟鏄妸涓涓?/span>unsigned long type鐨勬暟杞崲鎴愪竴涓瓧絎︿覆銆傚叾瀹冧粈涔堥兘涓嶆兂銆傜幇鍦ㄨ鎴戜滑鏉ヤ粩緇嗗搧璇婚噷闈㈢殑涓滆タ銆?/span>

        鎴戜紶鍏ヤ竴涓?/span>unsigned long type鐨勬暟鎹紝瀹冪粰鎴戜紶鍑轟竴涓?/span>char *錛岄偅榪欎釜char * 鍦ㄥ嚱鏁伴噷鎬庝箞鍒嗛厤絀洪棿鐨勩傞鍏堜笉鍙兘鏄爢鍒嗛厤錛屽洜涓哄鏋滄槸閭f牱鐨勮瘽錛屼綘鐢ㄥ畬榪欎釜鍑芥暟鍚庤繕瑕侀噴鏀捐祫婧愩傚叾嬈′笉鍙兘鏄爤鍒嗛厤錛屽洜涓洪偅鏍峰嚱鏁拌繑鍥炲悗鏍堜篃浼氳窡鐫閲婃斁銆傞偅榪樻湁鍙兘鏄叏灞鍙橀噺錛屽鏋滆繖鏍風殑璇濓紝C/C++涓凡緇忔湁濂藉鍏ㄥ眬浜嗐傞偅榪樻湁涓縐嶆槸static鐨勫彲鑳斤紝static涓嶄細闅忕潃鍑芥暟鐨勮繑鍥炶岄噴鏀撅紝涔熷氨鏄錛屽畠鏄竴鍧楅暱鏈熻鍒嗛厤鐨勫唴瀛樼┖闂達紝鐜板湪鍦ㄥ亣鑻ユ垜鍦ㄧ▼搴忎腑榪欐牱鍐欙細

        printf(“%s, %s”, inet_ntoa(a), inet_ntoa(b)); //a, b 鏄袱涓笉鐩哥瓑鐨勫?/span>

        杈撳嚭浼氳鎴戝ぇ鍚冧竴鎯婏紝杈撳嚭緇撴灉涓鏍楓傚師鍥犲緢綆鍗曪紝灝辨槸printf鍏堟眰b錛屾妸鍊肩粰浜嗛偅涓?/span>static錛岀劧鍚庡啀姹?/span>a, 鎶婂煎張緇欎簡static錛?/span>static鐨勯偅鍧楀唴瀛樻渶緇堣鍐欏叆浜?/span>a鐨勫鹼紝榪欎釜鏃跺欒緭鍑猴紝閭e綋鐒跺氨杈撳嚭鐨勫悓涓涓間簡銆傝繕鏈変竴縐嶉敊璇啓娉曪紝濡備笅錛?/span>

 

        Char *tmp1 = inet_ntoa(a);

        Char *tmp2 = inet_ntoa(b);

        榪欐牱涔熸槸鏈夐棶棰樼殑錛屽洜涓?/span>tmp1鍜?/span>tmp2閮芥寚鍚戜簡涓鍧楀唴瀛橈紝褰撳墠鐨?/span>static鐨勫煎氨鏄?/span>b鐨勫間簡銆傛墍浠ユ葷粨濡備笅錛屼嬌鐢ㄨ繖縐嶅嚱鏁頒竴瀹氳copy鍑芥暟榪斿洖鐨勫鹼紝鑰屼笉鑳藉幓淇濆瓨鍏跺唴瀛樺湴鍧錛?br>闄刬net_ntoa()婧愮爜錛?br>#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <bits/libc-lock.h>

/* The interface of this function is completely stupid, it requires a
   static buffer.  We relax this a bit in that we allow at least one
   buffer for each thread.  */


/* This is the key for the thread specific memory.  */
static __libc_key_t key;

/* If nonzero the key allocation failed and we should better use a
   static buffer than fail.  */

static char local_buf[18];
static char *static_buf;                                //闈欐?/span>

/* Destructor for the thread-specific data.  */
static void init (void);
static void free_key_mem (void *mem);


char *
inet_ntoa (struct in_addr in)
{
  __libc_once_define (static, once);
  char *buffer;
  unsigned char *bytes;

  /* If we have not yet initialized the buffer do it now.  */
  __libc_once (once, init);

  if (static_buf != NULL)
    buffer = static_buf;
  else
    {
      /* We don't use the static buffer and so we have a key.  Use it
to get the thread-specific buffer.  */

      buffer = __libc_getspecific (key);
      if (buffer == NULL)
{
  /* No buffer allocated so far.  */
  buffer = malloc (18);
  if (buffer == NULL)
    /* No more memory available.  We use the static buffer.  */
    buffer = local_buf;
  else
    __libc_setspecific (key, buffer);
}
    }

  bytes = (unsigned char *) &in;
  __snprintf (buffer, 18, "%d.%d.%d.%d",
      bytes[0], bytes[1], bytes[2], bytes[3]);

  return buffer;
}


/* Initialize buffer.  */
static void
init (void)
{
  if (__libc_key_create (&key, free_key_mem))
    /* Creating the key failed.  This means something really went
       wrong.  In any case use a static buffer which is better than
       nothing.  */

    static_buf = local_buf;
}



]]>
蹇冩儏涓嶉敊http://m.shnenglu.com/iuranus/archive/2007/03/28/20799.html鏀鍗?/dc:creator>鏀鍗?/author>Wed, 28 Mar 2007 11:52:00 GMThttp://m.shnenglu.com/iuranus/archive/2007/03/28/20799.htmlhttp://m.shnenglu.com/iuranus/comments/20799.htmlhttp://m.shnenglu.com/iuranus/archive/2007/03/28/20799.html#Feedback4http://m.shnenglu.com/iuranus/comments/commentRss/20799.htmlhttp://m.shnenglu.com/iuranus/services/trackbacks/20799.html緇忚繃涓浜涙椂鍊欓」鐩腑瀵?/span> C++ 鐨勪嬌鐢紝鎴戠畻鏄湁涓涓?/span> C++ 鐨勯」鐩粡楠岋紝浣嗘槸鍙嶈繃鏉ヨ錛屾垜鍙槸鍐欎簺鍩烘湰鐨勭▼搴忥紝娌℃湁娣卞叆鍒版瀯鏋訛紝涓昏榪樻槸鐢?/span> C 鐨勬濇兂錛屾槰澶╁啓 struct 鏃訛紝鎴戝彂鐜板湪 C 鍜?/span> C++ 涓啓娉曟槸涓嶆槸鏍風殑銆?/span>

C 錛?/span>

  struct Node{              // 澹版槑

       int node;

       struct Node *next;        // 瀹氫箟

  };

  struct Node list;

  鎴栬?/span>

  typedef  Node {         

   int node;

   struct Node *next;

}ListLink;

  ListLink list;

 

C++:

  struct Node{

    Int node;

    Node *next;

};

Node list;               // 鎼炲畾浜?/span>

榪欐牱涓鐪?/span> C++ 鐨勭‘瀹炲湪浠g爜鐨勫眰闈笂綆鍗曚簡錛屼絾鐞嗚В璧鋒潵鍗翠笉鏄緢鑸掓湇錛?/span>

浠婂ぉ鍒氭帴鍒頒換鍔″仛 Wireless-Lan 錛屽ソ闀挎椂闂存病鍋氭浜嬩簡錛堣繖涓ゅぉ涓昏鍦ㄥ啓鏂囨。錛変笢瑗胯繕姣旇緝澶氾紝浣嗘槸鍜屾垜涓緇勭殑 Danel浜哄緢濂?/span> 錛岀粰鎴戣浜嗕笅鏁翠釜 class diagram 鐨勬祦紼嬶紝铏芥病鏈?/span> sequence 閭d箞瀹規槗鐞嗚В錛屼絾鎴戣繕鏄噦浜嗐傝屼笖鎴戝彂鐜頒粬鍐欑▼搴忔椂鐗瑰埆寮蹇冿紝蹇冩佸緢濂斤紝榪欎篃鏄垜鍦ㄨ拷姹傜殑錛屾參鎱㈡潵鍚с傛葷洃璇磋繖鍛ㄤ簲涔嬪墠鍋氬嚭鐐逛笢瑗匡紝鍛靛懙錛屼笉鑳借浠栧け鏈涘憖錛岃繃浼氬啀鐪嬬湅浠g爜錛?/span> GUI 錛屾垜铔枩嬈㈠啓鐨勩?/span>

鍐嶈璇翠粖澶╃敤鐨勯偅涓伐鍏鳳紝 SOURCE INSIGHT 錛岀湡鐖姐傜湅浠g爜鐨勫己鏈夊姏宸ュ叿銆備笅嬈$粰 PASSION 鐨勫厔寮熶滑浠嬬粛涓嬨?/span>



]]>
C鐨勫熀鏈疄鐜?/title><link>http://m.shnenglu.com/iuranus/archive/2006/12/31/17092.html</link><dc:creator>鏀鍗?/dc:creator><author>鏀鍗?/author><pubDate>Sun, 31 Dec 2006 08:00:00 GMT</pubDate><guid>http://m.shnenglu.com/iuranus/archive/2006/12/31/17092.html</guid><wfw:comment>http://m.shnenglu.com/iuranus/comments/17092.html</wfw:comment><comments>http://m.shnenglu.com/iuranus/archive/2006/12/31/17092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/iuranus/comments/commentRss/17092.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/iuranus/services/trackbacks/17092.html</trackback:ping><description><![CDATA[<h3 class=post-title>C鐨勫疄鐜伴兘鏄湁涓や釜涓嶅悓鐨勭幆澧冿細緲昏瘧涓庢墽琛?br></h3> 緲昏瘧錛?br> <ol> <li>鎶婂涓簮鏂囦歡緙栬瘧鎴愮洰鏍囦唬鐮併傜紪璇戝垎涓洪澶勭悊鍣?鎶婄被浼間笌#define鐨勬浛鎹㈡簮鏂囦歡)錛岀劧鍚庤В鏋愶紝涔熷氨鏄潵璇嗗埆浠g爜錛屽ぇ澶氭暟閿欒鍜岃鍛婁駭鐢熷湪榪欐錛屾渶鍚庣洰鏍囦唬鐮佷究鐢熸垚銆傝繖涓繃紼嬩腑涔熷彲浠ュ姞鍏ヤ紭鍖栧櫒鏉ヤ紭鍖栦唬鐮併? <li>鎶婄洰鏍囦唬鐮佷笌鏍囧噯搴撳嚱鏁扮敤閾炬帴鍣ㄦ崋緇戝湪涓璧鳳紝鐢ㄤ簬鎵ц銆?/li> </ol> <p>鎵ц錛?/p> <ol> <li>紼嬪簭杞藉叆鍐呭瓨銆? <li>紼嬪簭鎵ц銆? <li>紼嬪簭緇堟銆?/li> </ol> <img src ="http://m.shnenglu.com/iuranus/aggbug/17092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/iuranus/" target="_blank">鏀鍗?/a> 2006-12-31 16:00 <a href="http://m.shnenglu.com/iuranus/archive/2006/12/31/17092.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.zhuangzhua.cn" target="_blank">久久精品国产亚洲αv忘忧草</a>| <a href="http://www.hhjzw.cn" target="_blank">少妇久久久久久被弄高潮</a>| <a href="http://www.sixyin.cn" target="_blank">久久国产精品无码HDAV </a>| <a href="http://www.chcrw.cn" target="_blank">久久综合丁香激情久久</a>| <a href="http://www.hfhyzt.cn" target="_blank">久久精品二区</a>| <a href="http://www.aimingshi.cn" target="_blank">国内精品综合久久久40p</a>| <a href="http://www.taokecai.cn" target="_blank">久久亚洲精品国产精品</a>| <a href="http://www.shcolor.com.cn" target="_blank">色综合久久88色综合天天</a>| <a href="http://www.o7xcp.cn" target="_blank">噜噜噜色噜噜噜久久</a>| <a href="http://www.52lovc.cn" target="_blank">99久久婷婷国产综合亚洲</a>| <a href="http://www.haibin860313.com.cn" target="_blank">久久er国产精品免费观看8</a>| <a href="http://www.xwgqzp.cn" target="_blank">国产成人精品综合久久久</a>| <a href="http://www.msn56.cn" target="_blank">大美女久久久久久j久久</a>| <a href="http://www.expo2006sy.com.cn" target="_blank">亚洲精品乱码久久久久久蜜桃</a>| <a href="http://www.366509.cn" target="_blank">无码久久精品国产亚洲Av影片</a>| <a href="http://www.aboto.cn" target="_blank">99久久夜色精品国产网站</a>| <a href="http://www.cxshuangai.cn" target="_blank">久久亚洲精品国产精品婷婷</a>| <a href="http://www.geishi.cn" target="_blank">久久精品国产福利国产秒</a>| <a href="http://www.mdeditor.cn" target="_blank">欧美国产成人久久精品</a>| <a href="http://www.chabaibaike.cn" target="_blank">伊人久久大香线蕉精品</a>| <a href="http://www.pgfg.net.cn" target="_blank">色综合久久无码五十路人妻</a>| <a href="http://www.htlon.cn" target="_blank">免费一级欧美大片久久网 </a>| <a href="http://www.sai-shang.cn" target="_blank">伊人色综合久久天天网</a>| <a href="http://www.woai858.cn" target="_blank">99热成人精品免费久久</a>| <a href="http://www.netcacd.cn" target="_blank">欧美大香线蕉线伊人久久</a>| <a href="http://www.chefax.cn" target="_blank">久久久这里只有精品加勒比</a>| <a href="http://www.135gkr4.cn" target="_blank">国产精品99久久久久久董美香 </a>| <a href="http://www.zqek.cn" target="_blank">欧美日韩久久中文字幕</a>| <a href="http://www.mingyixiu.cn" target="_blank">国产精品美女久久久久av爽</a>| <a href="http://www.shssdq.cn" target="_blank">2021精品国产综合久久</a>| <a href="http://www.dachanzui.cn" target="_blank">久久久久人妻精品一区</a>| <a href="http://www.sifubaimeng.cn" target="_blank">国产99久久久国产精品小说</a>| <a href="http://www.spiralstar.com.cn" target="_blank">久久九色综合九色99伊人</a>| <a href="http://www.myth9.cn" target="_blank">国产午夜精品久久久久九九电影</a>| <a href="http://www.wenlitown.cn" target="_blank">久久久久久久久无码精品亚洲日韩</a>| <a href="http://www.b2721.cn" target="_blank">久久99这里只有精品国产</a>| <a href="http://www.reboc.cn" target="_blank">久久久无码精品午夜</a>| <a href="http://www.girdlenet.cn" target="_blank">久久国产美女免费观看精品 </a>| <a href="http://www.licaidazhong.com.cn" target="_blank">久久精品国产亚洲AV影院</a>| <a href="http://www.air-ticket.cn" target="_blank">亚洲国产日韩综合久久精品</a>| <a href="http://www.chengrenshop.com.cn" target="_blank">精品无码久久久久久久动漫</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>