Eclipse-Methode konnte in einem einfachen Programm C ++ nicht aufgelöst werden

7

Ich habe ein Problem mit Eclipse Indigo, das sich darüber beschwert, dass Methoden einer Klasse nicht aufgelöst werden können, aber trotzdem kompiliert werden und korrekt funktionieren (AFAIK). Es ist ein sehr einfaches Programm. Hier ist Population.cpp:

%Vor%

Jetzt baue ich diesen Code und alles ist in Ordnung. In einem anderen Projekt in Eclipse rufe ich diesen Code folgendermaßen auf:

%Vor%

Wie Sie sehen können, verwende ich auch das CUTE-Plugin für TDD in C ++. Es klagt nicht, wenn ich p als Typ Population deklariere und die erste Behauptung besteht. Ich bin etwas neu in C ++, aber ich habe sichergestellt, dass das Projekt, das Population.cpp von dem Include-Pfad für das Testprojekt stammt, hinzugefügt wurde.

Es ist keine große Sache, da es nichts angeht, was für mich offensichtlich ist, aber es ist immer noch sehr nervig. Ich sehe keine Situation, wo es das tun sollte.

Danke für jede Hilfe!

    
F_C 03.02.2012, 07:01
quelle

3 Antworten

19

Versuchen Sie Folgendes:

Klicken Sie in Ihrem Projekt Explorer Fenster mit der rechten Maustaste auf Ihr Projekt - & gt; Index - & gt; Neu erstellen

    
user1526533 03.10.2013 18:50
quelle
10

Dies könnte ein Indizierungsproblem im Zusammenhang mit externen #include headers not founds sein. Befolgen Sie die folgenden Schritte und sehen Sie, ob es hilft:

  1. Gehen Sie zu jedem Ihrer benutzerdefinierten #include (z. B. "cute.h" ) und drücken Sie F3 (d. h. "Deklaration anzeigen"); Prüfen Sie, ob es auf diese Datei zugreifen kann oder nicht; wenn nicht, kopieren Sie diese Dateien auf einem Notizblock
  2. Wenn die Datei nicht zugänglich ist, suchen Sie sie in Ihrem Verzeichnis Verzeichnisaufbau; z.B. "cute.h" und "a.h" befinden sich bei " C://Eclipse/MyWork/Workspace/Project/include_1 " und "ide_listener.h" befindet sich at, " C://Eclipse/MyWork/Workspace/Project/include_2 ", dann kopiere beide die Ordnerpfade auf einem Notizblock
  3. Innerhalb von Eclipse gehen Sie zu Project -> Properties -> C/C++ General -> Paths and Sybmols ; Sie sehen mehrere Registerkarten als Includes , Sybmols , Library Paths ...
  4. Klicken Sie auf Library Paths -> Add -> Workspace... -> <locate the above folder paths> und drücken Sie OK
  5. Lassen Sie den Indexer neu erstellen; jetzt folge wieder dem Schritt (1); hoffnungsvoll Die Dateien sollten zugänglich sein
  6. Für zukünftige Sicherheit für größere Dateien, gehen Sie zu Window -> Preferences -> C/C++ -> Editor -> Scalability -> "Enable scalability mode when ..." und setzen Sie die Anzahl der Zeilen auf eine große Zahl wie 500000 und drücke "OK";

Der letzte Schritt ist notwendig, denn wenn Ihre Datei in Zeilennummer wächst und die obige Zahl überschreitet, wird Eclipse keine Definitionen mehr für <> Skalierbarkeit anzeigen, obwohl sie indexiert hätte.

    
iammilind 03.02.2012 07:19
quelle
3

sizeof(pointer) gibt die Größe des Zeigers zurück (4 bei 32-Bit-Systemen und 8 bei 64-Bit), nicht die Größe dessen, auf das er zeigt! Speichern Sie die Dimensionen in der Klasse, und fügen Sie eine Funktion hinzu, um sie zurückzugeben.

Außerdem sollten Sie in initializePop nicht das tatsächliche X -Array zuweisen?

%Vor%

Sie sollten stattdessen new für die Zuweisung verwenden, da Sie C ++ verwenden:

%Vor%

und später:

%Vor%     
Some programmer dude 03.02.2012 07:14
quelle

Tags und Links