簡體   English   中英

C ++模板:實例化對象時出錯

[英]C++ Templates: Error while instantiate object

我嘗試使用int Variable實例化一個類模板。 模板類:

template <int N>
class GRAPH {
    // ...
}

當我嘗試這樣做時:

    GRAPH<100> mygraph;

它工作正常。 但是當我這樣做時:

int maxVertices=100;
GRAPH<maxVertices> mygraph;

我收到以下錯誤:

';'之前的聲明中的無效類型 代幣

有人能幫我嗎?

謝謝

將您的代碼更改為

const int maxVertices=100;
GRAPH<maxVertices> mygraph;

模板參數在編譯時進行評估,因此您只能在此處將常量表達式作為模板參數傳遞。

模板參數在編譯時解析。 由於maxVertices不是常量,因此在編譯時不知道它的值,因此會出現錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM