2017-11-26 6 views
0

Ich weiß, dass es bereits a thread like this war, aber ich habe alles versucht, was vorgeschlagen wurde und der Fehler wird immer noch im Editor angezeigt, aber die Lösung kompiliert in Ordnung. Mein Problem könnte jedoch ein bisschen anders sein.Visual Studio 2015 IntelliSense Fehler aber Lösung kompiliert

Ich habe eine Funktion namens getCurrentTime mit dem gleichen Namen, in zwei separaten Dateien definiert und an verschiedene Klassen vererbt. Dies ist, wie es aussieht: enter image description here

enter image description here

NetworkClientState verwendet getCurrentTime aus der NetworkClient Basisklasse. GameClient sowie LinearPrediction und QuadraticPrediction alle verwenden getCurrentTime definieren in der Prediction Basisklasse.

Intellisense weiterhin auf Unterstreichen Prediction::getCurrentTime, aber das Programm kompiliert und läuft. Obwohl es sagen wird, dass getCurrentTime mehrdeutig ist, wenn ich using NetworkClient::getCurrentTime los werde. Was kann ich tun, um diesen Intellisense-Fehler zu beheben?

+4

Dies ist offensichtlich ein Fehler in IntelliSense. Die einzige Lösung besteht darin, sie zu ignorieren oder Ihre IDE zu aktualisieren (Visual Studio 2017 ist bereits lange verfügbar). Das heißt, Sie sollten ein [MCVE] erstellen, wenn das Problem in der neuesten IDE-Version fortbesteht und dann über die entsprechenden Kanäle gemeldet wird. – tambre

+0

Erinnern Sie sich daran, dass IntelliSense ein separater Compiler ist, der auf Geschwindigkeit und nicht unbedingt auf Genauigkeit optimiert ist. Es wird falsche Positive haben. – drescherjm

+0

Warum verwenden Sie Prediction? Sie stammen nicht davon ab. –

Antwort

0

Ich habe es gelöst, indem Sie Prediction::getCurrentTime in die .cpp Datei knallen und dann nur die Deklaration aus der Header-Datei entfernen. Der Fehler ist wahrscheinlich aufgrund der Mehrfachvererbung aufgetreten.

Verwandte Themen