簡體   English   中英

未定義的參考C ++隊列模板處理字符串

[英]Undefined Reference C++ Queue Template Handling Strings

我正在做作業,必須編寫一個模板,然后將其實現到驅動程序中。 不幸的是,編譯時出現錯誤。 我才剛剛開始學習C ++的更復雜方面,而且我不知道如何解決此問題。

/tmp/ccdvvLpF.o:main.cpp:(.text $ _ZN11LinkedQueueISsE7enqueueERKSs [LinkedQueue,std :: allocator>> :: enqueue(std :: basic_string,std :: allocator> const&)] + 0x4a):對LinkedQueue<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::number' /tmp/ccdvvLpF.o:main.cpp:(.text$_ZN11LinkedQueueISsE7enqueueERKSs[LinkedQueue<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::enqueue(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)]+0x66): undefined reference to未定義引用LinkedQueue<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::number' /tmp/ccdvvLpF.o:main.cpp:(.text$_ZN11LinkedQueueISsE7enqueueERKSs[LinkedQueue<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::enqueue(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)]+0x66): undefined reference to LinkedQueue的LinkedQueue<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::number' /tmp/ccdvvLpF.o:main.cpp:(.text$_ZN11LinkedQueueISsE7enqueueERKSs[LinkedQueue<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::enqueue(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)]+0x66): undefined reference to ,std :: allocator>> :: number'/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../ i686-pc-cygwin / bin / ld:/tmp/ccdvvLpF.o:`.text $ _ZN11LinkedQueueISsE7enqueueERKSs [LinkedQueue,std :: allocator>> :: enqueue(std :: basic_string,std :: allocator)部分中的錯誤重定位地址0x66 > const&)]'collect2:ld返回1退出狀態

謝謝。

永不定義static int number 在您的課程之外添加以下定義。

template <class T> int LinkedQueue<T>::number = 0;

static成員是特殊的 ,類內部的static int number僅是聲明,而不是定義。 這樣做的原因是因為標頭通常包含在多個轉換單元中,因此C ++強制您通常在cpp文件中的類之外定義它們,以免出現多個定義錯誤。

暫無
暫無

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

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