模板類使用時,經常會遇到的問題解析

2021-06-01 22:06:43 字數 1265 閱讀 5388

最近按照書本寫了下模板類,熟悉下其使用方法。按照以往的程式設計風格,我們會把類的宣告寫在標頭檔案中,而把類的實現部分寫在cpp標頭檔案中。

然而對於模板類,這種做法最容易遇到乙個奇怪的問題,具體描述如下:

程式設計環境:vc6.0

語言: c++

情況一:把模板類的宣告和定義都寫在標頭檔案中時,編譯通過,且正常執行。

情況二:當宣告和定義分開寫時,main.cpp 裡頭引入模板類的標頭檔案則編譯通過,當build時有錯誤。

情況三:當宣告和定義分開寫時,main.cpp 裡頭引入模板類的cpp檔案則編譯通過,build時也正常,可以正常執行。

stack.h 檔案:

#ifndef stack_h

#define stack_h

#define default_sixe 20

template class stack

~stack()

void clear();

bool push(const elem& data);

bool pop(elem& data);

bool topvalue(elem& data) const;

int length() const

};#endif

stack.cpp檔案:

#include "stack.h"

template void stack::clear()

template bool stack::push(const elem& data)

listarray[top++] = data;

return true;

}template bool stack::pop(elem& data)

data = listarray[--top];

return true;

}template bool stack::topvalue(elem& data) const

data = listarray[top-1];

return true;

}

main.cpp檔案:

#include "stack.h"

#include int main()

{ stacks(3);

s.push(23);

s.push(34);

s.push(2);

int r;

s.pop(r);

cout<

mongodb使用時遇到的問題

mon new mongoclient mongodb localhost 27017 要操作的資料庫 database mon apidata1 選擇集合 info database uuuvnq 全部查詢 data info find var dump data 結果 原因 find返回的是游標...

vue fullpage使用時遇到的問題

專案中用到了vue fullpage,遇到了幾個問題。專案情況主要就是做個資料報告,通過移動端的單頁滾動效果來展示資料。單頁滾動中某些元素需要相應的動畫效果。實際上這個bug已經被作者修改好了的,但是並沒有更新到npm上。commit d309628ecf54a390bd5a070ab411d43b...

SVN使用時遇到的問題

當然,一般開發者面對的問題是svn沒有啟動,並不知道原因。所以,找原因是首先想到的思路。那我們就檢查svn是否已經啟動了。上圖表示已經啟動了svnserve。如果沒有啟動,則啟動。svnserve d r data svn 我一般會檢查防火牆是否開啟,如果開啟,則關閉,並設定為開機關閉。centos...