[英]error: could not convert 'tab' from 'vector<std::vector<std::__cxx11::basic_string<char> >>' to 'vector<std::__cxx11::basic_string<char>>'
[英](std::__cxx11::string) [with T = std::__cxx11::basic_string<char>; std::__cxx11::string = std::__cxx11::basic_string<char>] cannot be overloaded
C++ 顯示模板中構造函數重載的錯誤
(std::__cxx11::string) [with T = std::__cxx11::basic_string<char>; std::__cxx11::string = std::__cxx11::basic_string<char>]cannot be overloaded
我試圖在這里重載模板類構造函數。 擴展錯誤:
In file included from main.cpp:2:0:
dlist.h: In instantiation of class Sinwan::DList::DoublyLinkList<std::__cxx11::basic_string<char> >:
main.cpp:5:45: required from here
dlist.h:62:13: error:Sinwan::DList::DoublyLinkList<T>::DoublyLinkList(std::__cxx11::string) [with T = std::__cxx11::basic_string<char>; std::__cxx11::string = std::__cxx11::basic_string<char>] cannot be overloaded
DoublyLinkList(std::string dummyData_)
^
dlist.h:52:13: error: with Sinwan::DList::DoublyLinkList<T>::DoublyLinkList(T) [with T = std::__cxx11::basic_string<char>]
DoublyLinkList(T dummyData_)
我的 .h 文件中的代碼:
DoublyLinkList(T dummyData_)
{
node = new Node;//dummy node
node->_next=NULL;
node->_prev=NULL;
node->_data=dummyData_;
head=node;
tail=node;
_iteratorObj=begin();
}
DoublyLinkList(std::string dummyData_)
{
node = new Node;//dummy node
node->_next=NULL;
node->_prev=NULL;
node->_data=dummyData_;
head=node;
tail=node;
_iteratorObj=begin();
}
主.cpp:
#include<iostream>
#include "dlist.h"
int main()
{
Sinwan::DList::DoublyLinkList<std::string>::Iterator it;
Sinwan::DList::DoublyLinkList<std::string> listObj("0");
}
如果我將 std::string 更改為 int,它工作正常。 有人可以幫我指出prblm嗎?
我們仍然沒有最小、完整和可驗證的示例,但至少可以猜測問題。
假設T
是一個類模板參數,那么如果您有DoublyLinkList<std::string>
那么類型T
將是std::string
,並且您將有兩個構造函數將std::string
作為參數。 你不能這樣,如果你重載一個函數(構造函數或其他),它必須有不同的簽名。
您可能不應該讓構造函數采用顯式std::string
參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.