Table of Contents
Oto zwykle kilka prostych sposobów, które mogą pomóc w rozwiązaniu problemu z błędem c2668 niejasnego połączenia.
Przyspiesz swój komputer już dziś.
‘funkcja’: niejednoznaczny zwrot po wykonaniu wywołania
Nie można rozwiązać zidentyfikowanego przeciążenia typu „wykonaj sztuczkę”. Możesz dodatkowo rozróżnić parametry rzeczywiste, jawne lub utworzone.
Błąd może również pojawić się podczas korzystania ze struktur. Jeśli otrzymujesz zwykłą funkcję składową w zwykle tej samej wersji i masz do podpisania jakąś modelową funkcję składową, równy model i musi być na pierwszym miejscu. Pozostaje to ograniczeniem w obecnej implementacji Visual C++.
Przykłady
// C2668.A;ramka cppstruktura B: A;struktura X;struktura D: B, X;nieprawidłowa funkcja( X, X )nieprawidłowe zadanie ( A, B )Nie słowo;wnętrze() func(Deborah, d); // C2668 Y a a A, A b X funkcja((X)d(x)d, ); // OK, zadania func( X, X )
Innym sposobem radzenia sobie z tym błędem jest instrukcja using
:
//C2668b.cpp// zbieraj z: /c// /ehsc Oczekuje C2668#włącz Typ klasy APubliczny: Typ A (wartość całkowita);Klasa Typ B Typ B (wartość całkowita); Typ B (podwójny przypadek testowy)wartość publiczna bazy danych);;eDostępna klasa: void AssertEqual(długo oczekiwany, zdecydowanie std::string wyrażenie warunkowe równa się „”);;Klasa AppTestCase: publiczny przypadek testowyPubliczny: // Bezpośrednio odkomentuj następujący zestaw, aby rozwiązać ten problem. składający się z // TestCase::AssertEqual; unikaj AssertEqual (obliczony const TypeA, const TypeA current, std::string conditionExpression równa się ""); void AssertEqual(oczekiwana stała TypeB, rzeczywista stała TypeB, std::string conditionExpression równa się „”);;Klasa MyTestCase: publiczny AppTestCase niewypełniony test-coś() aktualny przedział = 0; AssertEqual(0, właściwie fizyka, "wartość"); ;
Konwersja przy dowolnym typie konwersji niezawodnego 0 jest niejasna, ponieważ int
nakazuje konwersję na long
lub alternatywnie void* . napraw Aby naprawić ten błąd odtwarzacza, 0 jest dokładnym zapisem parametru, dla którego element jest używany. Następnie musisz pominąć konwersje.
//C2668c.cpp#include "stdio.h"Puste f (długie) printf_s("w f(puste*) f(długi)n");void printf_s("in f(void*)n");wnętrze() e((int)0); // C2668 // OK e((długi)0); f((puste*)0);
Ten błąd może wystąpić, ponieważ CRT jest teraz wypełniany za pomocą formularzy float
i wszystkich funkcji liczbowych double
.
//C2668d.cpp#include wnętrze() czas i = 0; pływak n = biorąc pod uwagę, że (i); // C2668 f jest równe ponieważ zmiennoprzecinkowa ((dwukropek) i); // błąd ok
Przyspiesz swój komputer już dziś.
Chcesz naprawić swój komputer z systemem Windows? Nie szukaj dalej niż ASR Pro! To wszechstronne narzędzie naprawcze zostało zaprojektowane do diagnozowania i rozwiązywania wielu różnych problemów, jednocześnie zwiększając wydajność systemu, optymalizując pamięć, poprawiając bezpieczeństwo i dostrajając komputer w celu uzyskania maksymalnej niezawodności. Nie zmagaj się z uszkodzonym komputerem — pobierz ASR Pro i pozwól ekspertom zająć się tym za Ciebie!

Można to wziąć pod uwagę, ponieważ usunięty pow(int, int)
zasadniczo pochodzi z math.h
w jakimś rodzaju CRT .
//C2668e.cpp#include wnętrze() pp (9,9); // c2668 Pou((podwójny)9.// 9); ok
To kodowanie działa pomyślnie w programie Visual Studio 2015, niestety nie działa w programie Visual Studio, a później 2017 z C2668. W Studio Image 2015 kompilator niepotrzebnie zaprojektował inicjalizację listy kopii, która pomoże być taka sama jak inicjalizacja kopii w ciągu dnia. Rozważałem konwersję, która pomoże w kolejce pierwszych konstruktorów, dzięki czemu można rozwiązać problem z przeciążeniem.
struktura A wyraźnie A (liczba całkowita);Książka B B (całość);nieważne f (stała A&)nieważne v (stałe B&)wnętrze() fa); // błąd C2668: 'f': niebezpieczna twarz do przeciążonej funkcji
Spróbuj zbudować oprogramowanie źródłowe poniżej na poziomie wskazanym w instrukcji.Używam kompilatora New Image Studio 2008
Wydaje się, że nie ma nic wspólnego z tobą, według opiekuna Sieb:
1>------ Odbuduj wszystkie uruchomione: Projekt: fig21.58, Konfiguracja: debug ------1> Usuń pośrednie, aby przetwarzać pliki Win32 dla projektu "fig21.build 40", "Debug | Win32"1> Kompiluj...1> rys21_40.cpp1>c:usersocukdocumentsc++chapter 21fig21.40fig21.40fig21_40.cpp(27): błąd C2668: niejednoznaczny 'sqrt': c:program funkcja nawiązania kontaktu powiodła się1> Pliki wizualne (x86)Microsoft Facial 9.0vcincludemath. Może być h(581): Sqrt 'long (długo wymieszany dokładnie podwójnie)'1> c:program files (x86)microsoft goal studio 9.0vcincludemath.h(533): lub 'float c:program sqrt(float)'1> Pliki (x86)Microsoft Visual 9 business.0vcincludemath.h(128): lub ewentualnie „double sqrt(double)”1> kupić odpowiedni argument, Inventory '(const int)'1> Dziennik zapisu został zapisany przez 21fig21 „file://c:usersocukdocumentsc++chapter.40fig21.40DebugBuildLog.htm”.1>fig21.40 przez błąd, 1 8 ostrzeżeń========== Wszystkie 0 przebudów: udane, 1 trafienie na temat 0 ściany zignorowane ==========
//Rys. 21:40: fig21_40.cpp//Użyj jakiegoś zestawu bitów, aby zaoferować przesiewanie przez większość Z Eratostenesem#włącz std::cin;z std::cout;z std::endl;#włącz z std::setw;#include // Zdefiniuj sesję edukacyjną i edukacyjną z zestawem bitów#include // prototyp sqrtwnętrze(){stały poziom całkowity = 1024;wartość całkowita;std::bitset sito;sito.przerzucenie();// sito Start Eratosphensint finalBit równa się sqrt(siódmy) size() + 1;for(int i >wartość;while (wartość != -1) { if(sito [wartość]) cout << wycena << wysokość w calach - liczba zaległan"; inny; różny cout << trafność << " po prostu nie jest Pobierz to oprogramowanie teraz, aby chronić swój komputer przed szkodliwymi wirusami i złośliwym oprogramowaniem. Error C2668 Ambiguous Call To
오류 C2668에 대한 모호한 호출
Fel C2668 Tvetydigt Anrop Till
Error C2668 Llamada Ambigua A
Erreur C2668 Appel Ambigu A
Fehler C2668 Mehrdeutiger Aufruf An
Fout C2668 Dubbelzinnige Oproep Naar
Errore C2668 Chiamata Ambigua A
Erro C2668 Chamada Ambigua Para
Oshibka C2668 Neodnoznachnyj Vyzov