template und strings
-
Hallo,
Ich möchte folgende Digraph Klasse auch mit strings benutzen. Mit ints und chars funktiont sie problemlos.
Digraph<string, 5> g; g.InsertVertex(0,"AB");
In der Klasse:
template <class TV, int maxNodes>
Digraph() { // Konstruktor numvertices = 0; numarcs = 0; for (int i = 0; i < maxNodes; i++) { for (int b = 0; b < maxNodes; b++) { arc[i][b] = noArc; } } }
Fehlermeldung
Digraph.h:35: instantiated from ‘Digraph<TV, maxNodes>::Digraph() [with TV = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int maxNodes = 5]â€
main.cpp:15: instantiated from here
Digraph.h:19: error: ambiguous overload for ‘operator=†in ‘((Digraph<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, 5>::Vertex*)this)->Digraph<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, 5>::Vertex::value = 0â€
/usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/basic_string.h:494: note: candidates are: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
/usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/basic_string.h:502: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
/usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/basic_string.h:513: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(_CharT) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
-
kann es sein, dass die fehlermeldung an sich fehlt? : P
was ist arc?
was ist noArc?bb
-
sonst gibts nurnoch das als Fehlermeldung
Digraph.h: In member function ‘void Digraph<TV, maxNodes>::DeleteVertex(int) [with TV = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int maxNodes = 5]â€:
Digraph.h:51: instantiated from ‘void Digraph<TV, maxNodes>::InsertVertex(int, TV) [with TV = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int maxNodes = 5]â€
main.cpp:16: instantiated from here
Digraph.h:65: error: ambiguous overload for ‘operator=†in ‘((Digraph<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, 5>)this)->Digraph<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, 5>::vertex[n].Digraph<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, 5>::Vertex::value = 0â€
/usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/basic_string.h:494: note: candidates are: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
/usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/basic_string.h:502: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const _CharT) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
/usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/basic_string.h:513: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(_CharT) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
make[2]: *** [build/Debug/Cygwin-Windows/main.o] Error 1arc ist ein int const und noArc nen 2 Dimensionales Array vom double typ
-
arc ist ein int const und noArc nen 2 Dimensionales Array vom double typ
sorry umgekehrt
noArc ist ein int const und arc nen 2 Dimensionales Array vom double typ
-
// edit: Wunderbar, zu spät
Digraph.h: In member function ‘void Digraph<TV, maxNodes>::DeleteVertex(int) [with TV = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int maxNodes = 5]’: Digraph.h:51: instantiated from ‘void Digraph<TV, maxNodes>::InsertVertex(int, TV) [with TV = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int maxNodes = 5]’ main.cpp:16: instantiated from here Digraph.h:65: error: ambiguous overload for ‘operator=’ in ‘((Digraph<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, 5>*)this)->Digraph<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, 5>::vertex[n].Digraph<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, 5>::Vertex::value = 0’ /usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/basic_string.h:494: note: candidates are: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>] /usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/basic_string.h:502: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>] /usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/basic_string.h:513: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(_CharT) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>] make[2]: *** [build/Debug/Cygwin-Windows/main.o] Error 1
Jetzt kann mans besser lesen.
Relevanten Code hast du leider nicht gepostet.
Oben Zeile 4 zeigt dir den Fehler:[...]Vertex::value = 0
Was ist Vertex::value? Zeigst du uns mal die Klassendefinition von Digraph und Vertex?
Am besten wäre allerdings ein minimales Beispiel, das deinen Fehler beinhaltet. Dann kann man mehr sagen.