青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-3  評(píng)論-0  文章-0  trackbacks-0
      學(xué)習(xí)C++有一段時(shí)間了,最近幾個(gè)月才有所心得,希望在這里和大家共同分享。
      最近利用一點(diǎn)時(shí)間寫了一個(gè)matrix鍛煉一下自己,因?yàn)閷W(xué)習(xí)的時(shí)候都會(huì)用到,所以自己就隨便寫寫。中間學(xué)到不少。
比如,最奇怪的是,在我這個(gè)LMatrix<T>模板類里,直接使用setioflags會(huì)提示說“setioflags不是模板類,不支持模板參數(shù)”。
后來在書上看到,在頭文件加上
1 using std::setioflags
就完全沒有問題了。真是不得其解啊!
       另外,intel C++ Compiler 11 在編譯的時(shí)候,沒有任何問題,但g++ 4.4.1(在ubuntu 9.10 下)卻有這么個(gè)提示:
1 template<typename T>
2 const LMatrix<T>::Matrix2p LMatrix<T>::lu_resolve() const
說在”<"之前要初始化LMatrix<T>,而Matrix2p只是LMatrix<T>里的一個(gè)嵌套類。我測(cè)試了這個(gè)函數(shù),完全正常,只是g++ 不能編譯通過。期待高人解決之。
       由于intel還不支持右值引用,所以代碼里的時(shí)髦函數(shù)子就只好處理掉了。
       看了《efficient c++》,本來想把它的固定大小的內(nèi)存池拿來直接用,結(jié)果發(fā)現(xiàn)最后釋放內(nèi)存池的時(shí)候,崩潰了。代碼如下:

 1 template<typename T>
 2 class LMatrix
 3 {
 4 public:
 5 //
 6 // other functions
 7 
 8 ///////////overload operator new and delete to use the memorypool////////////////
 9 inline void* operator new(size_t size)
10 
11      return memPool->alloc(size);
12 }
13 
14 inline void operator delete(void* element, size_t size)
15 
16      memPool->free(element); 
17 }
18 
19 static void newMemoryPool()
20 
21     memPool = new ByteMemoryPool; 
22 }
23 
24 static void deleteMemoryPool()
25 
26    delete memPool;
27 }
28 ////////////////////////////////////
29 
30 private:
31    static ByteMemoryPool* memPool;
32 }

        內(nèi)存池LMemoryPool.hpp的代碼原樣引自《efficient C++》:
 1 #ifndef L_MEMORYPOOL_H_
 2 #define L_MEMORYPOOL_H_
 3 #include "LMatrix.hpp"
 4 
 5 template<typename T>
 6 class LMemoryPool
 7 {
 8 public:
 9     LMemoryPool(size_t size = EXPANSION_SIZE);
10     ~LMemoryPool();
11     inline void* alloc(size_t size);
12     inline void free(void* element);
13 private:
14     LMemoryPool<T>* next;
15     static const size_t EXPANSION_SIZE = 32;
16     void expandList(size_t listLength = EXPANSION_SIZE);
17 };
18 
19 template<typename T>
20 LMemoryPool<T>::LMemoryPool(size_t size)
21 {
22     expandList(size);
23 }
24 
25 template<typename T>
26 LMemoryPool<T>::~LMemoryPool()
27 {
28     LMemoryPool<T>* pNext = next;
29     for(pNext = next; pNext != NULL; pNext = next)
30     {
31         next = next->next;
32         delete[] pNext;
33     }
34 }
35 
36 template<typename T>
37 void* LMemoryPool<T>::alloc(size_t size)
38 {
39     if(next != 0)
40         expandList();
41     LMemoryPool<T>* head = next;
42     next = head->next;
43     return head;
44 }
45 
46 template<typename T>
47 void LMemoryPool<T>::free(void* element)
48 {
49     LMemoryPool<T>* head = static_cast< LMemoryPool<T>* >(element);
50     head->next = next;
51     next = head;
52 }
53 
54 template<typename T>
55 void LMemoryPool<T>::expandList(size_t listLength)
56 {
57     size_t size = (sizeof(T) > sizeof(LMemoryPool<T>*))
58                 ? sizeof(T) : sizeof(LMemoryPool<T>*);
59     LMemoryPool<T>* itr = reinterpret_cast< LMemoryPool<T>* >(new char[size]);
60     
61     next = itr;
62     
63     for(size_t i=0; i<listLength; ++i)
64     {
65         itr->next = reinterpret_cast< LMemoryPool<T>* >(new char[size]);
66         itr = itr->next;
67     }
68     itr->next = NULL;
69     
70 }
71 #endif /*L_MEMORYPOOL_H_ */

測(cè)試的testMatrix.cpp用例如下:
 1 #include "LMatrix.hpp"
 2 LMemoryPool< LMatrix<int> >* LMatrix<int>::memPool = 0;
 3 int main( )
 4 {
 5     const int size = 4;
 6     LMatrix<int>* array[size];
 7     LMatrix<int>::newMemoryPool();
 8     for(int j=0; j<size / 2++j)
 9     {
10         for(int i=0; i<size; ++i)
11             array[i] = new LMatrix<int>(88);
12        
13         for(int k=0; k<size; ++k)   
14             delete array[k];
15     }
16 
17     LMatrix<int>::deleteMemoryPool();
18 
19     return 0;
20 }
21 
       一切正常直到上面測(cè)試程序的第17行,追蹤到內(nèi)存池LMemoryPool.hpp的析構(gòu)函數(shù)(第32行),發(fā)現(xiàn)它竟然被多次執(zhí)行了。這不是很奇怪嗎?
類的靜態(tài)成員是全局共享的,這里只有一次調(diào)用,為什么會(huì)造成多次析構(gòu)呢?期待高人。

posted on 2010-01-18 20:29 Leix 閱讀(221) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久性天堂网| 欧美成人激情视频| 欧美在线网址| 久久国产精品72免费观看| 国产精品系列在线| 老司机精品福利视频| 欧美影院一区| 亚洲国产激情| 亚洲专区在线视频| 乱中年女人伦av一区二区| 欧美日韩一区二区免费在线观看| 国产亚洲制服色| 韩国一区二区在线观看| 欧美午夜精品久久久久久浪潮 | 欧美一区在线直播| 亚洲午夜在线观看| 国产亚洲一区二区精品| 99国产精品国产精品久久| 欧美一区二区三区免费视| 先锋影音久久久| 亚洲电影有码| 欧美在线视频免费| 欧美视频四区| 国产欧美不卡| 国产亚洲福利社区一区| 欧美3dxxxxhd| 最近中文字幕mv在线一区二区三区四区| 亚洲福利视频在线| 性欧美精品高清| 午夜日韩电影| 国产精品美女久久久免费| 亚洲黑丝一区二区| 亚洲自拍偷拍视频| 亚洲欧美另类综合偷拍| 欧美视频中文字幕在线| 99视频有精品| 亚洲在线观看| 国产伦精品一区二区三区高清版| 亚洲一区在线视频| 欧美韩日亚洲| 日韩视频精品| 久久亚洲高清| 亚洲国产欧美国产综合一区| 久久亚洲欧洲| 欧美一区二区三区的| 亚洲人成免费| 国产精品亚洲综合天堂夜夜| 亚洲一区亚洲二区| 亚洲自拍偷拍一区| 国产精品亚洲综合久久| 久久久综合激的五月天| 另类人畜视频在线| 亚洲精华国产欧美| 亚洲精品美女在线观看播放| 国产精品影视天天线| 久久国产精品第一页| 久久精品日产第一区二区| 国产精品精品视频| 欧美大香线蕉线伊人久久国产精品| 欧美99在线视频观看| 亚洲欧美变态国产另类| 久久久综合免费视频| 欧美日韩在线精品| 久久男女视频| 欧美日韩在线一二三| 久久一区免费| 欧美精品乱码久久久久久按摩| 国产精品99久久久久久久vr| 亚洲一区激情| 亚洲精品一级| 欧美一区二区三区成人| 亚洲午夜一区二区| 久久中文字幕一区| 香蕉成人啪国产精品视频综合网| 亚洲一区二区三区精品在线| 永久免费毛片在线播放不卡| 亚洲美女毛片| 国产精品婷婷| 亚洲清纯自拍| 国产综合久久久久影院| 亚洲免费福利视频| 亚洲国产欧美在线| 久久午夜影视| 欧美中文在线观看| 欧美日本中文字幕| 亚洲精品国产无天堂网2021| 在线观看欧美黄色| 亚洲欧美一区二区原创| 亚洲欧美国产精品va在线观看 | 乱码第一页成人| 亚洲欧美日韩在线综合| 另类亚洲自拍| 亚洲精品日韩在线| 欧美精品在线一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美午夜性色大片在线观看| 韩国av一区二区三区在线观看| 在线视频亚洲欧美| 一区二区三区四区在线| 久久精品国产亚洲5555| 免播放器亚洲一区| 一区二区三区精品视频| 欧美成人精品| 亚洲免费高清| 亚洲国产婷婷| 久久一区精品| 蜜臀久久99精品久久久久久9| 国产精品午夜av在线| 亚洲午夜免费视频| 一本一本a久久| 欧美日产国产成人免费图片| 亚洲精品在线免费观看视频| 99国产精品视频免费观看| 欧美精品 国产精品| 亚洲激情图片小说视频| 亚洲国产精品国自产拍av秋霞 | 亚洲欧洲精品一区二区三区波多野1战4| 亚洲日本视频| 欧美国产日韩一二三区| 亚洲福利久久| 99国产精品久久久久久久成人热| 欧美视频精品一区| 亚洲无限乱码一二三四麻| 亚洲欧美国产日韩中文字幕| 欧美二区在线看| 一区二区三区四区五区视频| 夜夜嗨av一区二区三区网站四季av| 欧美啪啪成人vr| 午夜视频在线观看一区二区| 久久综合给合久久狠狠色| 在线免费观看视频一区| 久久精品99国产精品| 亚洲啪啪91| 一区二区三区精品久久久| 免费成人激情视频| 99热这里只有精品8| 国产精品久久久久久av福利软件 | 国产精品成人在线观看| 欧美一区网站| 欧美韩日一区| 久久国产成人| 一区二区三区久久久| 精品av久久707| 国产精品国产三级国产专区53| 久久久精品tv| 午夜精品久久久久久久蜜桃app| 亚洲国产精品t66y| 久久久久久久综合狠狠综合| 99国产精品久久| 亚洲国产精品久久久久| 国产欧美1区2区3区| 欧美激情亚洲另类| 久久久99精品免费观看不卡| 一区二区三区日韩在线观看| 亚洲国产专区校园欧美| 久热精品视频在线| 欧美一区二区三区的| 日韩午夜免费视频| 永久555www成人免费| 欧美日韩一二三区| 蜜臀av一级做a爰片久久| 欧美影视一区| 亚洲性视频h| 日韩视频国产视频| 久久久亚洲精品一区二区三区| 亚洲二区视频| 国产午夜亚洲精品不卡| 国产精品无码专区在线观看| 欧美激情一区二区三区高清视频 | 欧美国产日韩免费| 麻豆成人91精品二区三区| 久久成人18免费观看| 亚洲嫩草精品久久| 在线视频欧美一区| 亚洲午夜一级| 亚洲午夜羞羞片| 亚洲中无吗在线| 亚洲特级毛片| 亚洲免费在线观看视频| 一区二区三区四区国产精品| 日韩午夜激情av| 一区二区av在线| 日韩亚洲欧美精品| 这里只有精品视频| 亚洲亚洲精品三区日韩精品在线视频| 日韩亚洲国产精品| 日韩一区二区精品在线观看| 亚洲精品在线视频观看| 一本色道久久99精品综合| 夜夜夜精品看看| 一本色道久久加勒比88综合| 99视频精品全国免费| 中文欧美字幕免费| 亚洲欧洲av一区二区| 欧美一区深夜视频| 久久综合成人精品亚洲另类欧美| 久久一日本道色综合久久| 欧美jizz19hd性欧美| 欧美日韩精品高清| 国产精品久久久久久av下载红粉 |