pointer over vector in Netbeans/ VS 2013
-
Servus Leute, hab diese Frage bezüglich netbeans/ Visualstudio 2013:
class Book{
public:
Book(string name);string getName();
private:
string name;
};#include "Book.h"
int main(){
vector<Book*> book;
....
....
book[0]->getName(); // in Visual Studio 2013 it shows getName(); but in Netbeans it doesnt.return 0;
}
Also warum zeigt der netbeans die methode getName() nicht, aber VS machts.?
Danke
G.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
gigant schrieb:
Also warum zeigt der netbeans die methode getName() nicht, aber VS machts.?
Was meinst du? Dass getName() im Assembly Code nicht aufgerufen wird? Das kann nämlich durch Optimierungen geschehen. Ich nehme an getName() hat keine Side-Effects und du speicherst den Rückgabewert nicht. Also kann man den Aufruf auch wegoptimieren.
Kompiliere in VS mal im Release Mode. Vielleicht wird der Aufruf dann auch wegoptimiert.
-
icarus2 schrieb:
gigant schrieb:
Also warum zeigt der netbeans die methode getName() nicht, aber VS machts.?
Was meinst du? Dass getName() im Assembly Code nicht aufgerufen wird? Das kann nämlich durch Optimierungen geschehen. Ich nehme an getName() hat keine Side-Effects und du speicherst den Rückgabewert nicht. Also kann man den Aufruf auch wegoptimieren.
Kompiliere in VS mal im Release Mode. Vielleicht wird der Aufruf dann auch wegoptimiert.also wenn du in main:
Book b ;
b. // b punkt machst, dann siehste alles , was in der Klasse Book unter public steht. Wenn du jetzt book[1]-> machst dann zeigt es in VS alles was du in Book unter public hast. Aber Netbeans macht das nicht, es gibt zwar kein Fehler aus, sondern unable to resolve identifer getName().
-
Ich verstehe deine Frage nicht. Poste ein minimales, kompilierbares Codebeispiel (mit Codetags!), bei dem der Fehler auftritt.
-
Book.h:
class Book{
public:
Book(string name);
...... // other functions
..... // other functionsstring getName(){
return this->name};
private:
string name;
};main.cpp:
#include "Book.h"
int main(){
vector<Book*> book;
....
....
book[0]->getName(); // in Visual Studio 2013 it shows getName(); i.e
//with -> it shows all public members methods, but in Netbeans it doesnt.
// Question is why netbeans doesnt show public methods??
return 0;
}
-
Das Beispiel ist weder kompilierbar noch mit CodeTags gepostet. Ich habe nach vie vor keine Ahnug was genau deine Frage ist, viel unverständlicher kann man nicht fragen.
Wenn ich raten müsste, dann suchst du Auto-Completion (in VS heisst dies IntelliSense).
-
Book.h:
#include <string>
using std::string;
class Book{
public:
Book(string name);
...... // other functions
..... // other functionsstring getName(){
return this->name
};
private:
string name;
};main.cpp:
#include "Book.h"
int main(){
vector<Book*> book;
....
....Book b;
b.getName(); // wenn du b punkt machst, dann in Netbeans zeigt es die public
//methoden der Klasse Book. in VS 2013 auch so. ja?book[0]->getName(); /*wenn du book[0]pfeiloperator schreibst, dann zeigt es in
Visual Studio 2013 die public methoden der Klasse Book.
wenn du book[0]pfeiloperator machst, diesmal in Netbeans
der zeigt die public methoden der Klasse Book nicht.
Frage: Warum? Verstehste jetzt?return 0;
}