Visual C++ Intellisense - nicht bei Codedatei?
-
Hallo,
weiss jemand, warum Visual C++ Express nur Intellisense anbietet, wenn man ein Projekt angeleg hat, aber nicht, wenn man "nur" eine Codedatei erzeugt hat?
In diesem Fall meine ich eine Konsolenanwendung. Da es sich doch um eine cpp Datei handelt und die IDE diese auch angelegt hat, hätte ich erwartet, dass auch hier Intellisense funktioniert. Dem ist aber nicht so. Hat denn die IDE hier keinen ugriff auf die Typenbibliothken?Grüße
tupan
-
Ich kann nur spekulieren, dass der IDE die Pfade zu den Include-Dateien fehlen.
-
anscheinend...wenn man ein Projekt anlegt, klappt es ja. Nimmt man stattdessen eine Codedatei ohne Projekt, dann geht's nicht. Wahrscheinlich hat die IDE dann keinen Zugriff auf die includes. Ich würde es verstehen, wenn die IDE nicht aber auch die Codedatei als cpp Datei erzeugen würde. Somit wäre ja dann klar, das man die Includes con C++ braucht und nicht etwa von C.
Naja, ich gebe zu, ich komme jetzt von Hölzchen auf Stöckchen, wie man so schön sagt
Das sind Kleinigkeiten, ich gucke mal lieber, das ich mit dem eigentlichen Stoff weiterkomme. Is ja zum Glück nicht so, als wenn ich gar nicht programmiert hätte bisher, C# und Visual Basic Programme kann ich schon schreiben. Jetzt will ich die Feinheiten von C++ erkunden.
Was ich am spannensten finde, sind die Pointer. Ich habs nur mal überflogen bisher, aber wann setzt man Zeiger ein? Man könnte doch theoretisch eine Variable deklarieren und dann einen Zeiger setzen und fortan nur noch mit diesem arbeiten. Ist das die Idee dahinter? Oder setzt man Zeiger nur in ganz bestimmten Fällen ein?
Ich weiss, das ist ein anderes Thema, aber wo wir doch schon so nett plaudern, gell?!Grüße
tupan
-
tupan schrieb:
anscheinend...wenn man ein Projekt anlegt, klappt es ja. Nimmt man stattdessen eine Codedatei ohne Projekt, dann geht's nicht. Wahrscheinlich hat die IDE dann keinen Zugriff auf die includes. Ich würde es verstehen, wenn die IDE nicht aber auch die Codedatei als cpp Datei erzeugen würde. Somit wäre ja dann klar, das man die Includes con C++ braucht und nicht etwa von C.
Naja, ich gebe zu, ich komme jetzt von Hölzchen auf Stöckchen, wie man so schön sagtDas Problem ist: Die IDE ist ein Texteditor. Erst wenn du ein Projekt erstellst, ist es für die IDE möglich, deine einzelne Datei in einen Kontext zu stellen und erst dann weis die IDE, wo sie nach Includes suchen soll. Es gibt ja nicht nur die Standard Include Dateien. Jede neue Bibliothek bringt ja ihre eigenen mit.
tupan schrieb:
Was ich am spannensten finde, sind die Pointer. Ich habs nur mal überflogen bisher, aber wann setzt man Zeiger ein? Man könnte doch theoretisch eine Variable deklarieren und dann einen Zeiger setzen und fortan nur noch mit diesem arbeiten. Ist das die Idee dahinter? Oder setzt man Zeiger nur in ganz bestimmten Fällen ein?
Ich weiss, das ist ein anderes Thema, aber wo wir doch schon so nett plaudern, gell?!Immer mit Pointern zu Arbeiten wird schnell sehr gefährlich, da die Pointer irgendwann auf ungültige Bereiche zeigen und dein Programm sich verabschiedet. Pointer kannst du immer dann einsetzen, wenn du irgendwas sehr LowLevel mäßiges machst, wo du den Speicher selber verwalten willst. Z.b. Sockets oder sowas...
-
deine Erklärung bezogen auf die IDE ist überzeugend. Klar, DAS ist der Grund.
Zu den Pointern - ja, das habe ich gelesen, dass es gefährlich werden kann, wenn ein Zeiger einen Bereich referenziert, der ihm nicht zugedacht ist.
Also Einsatzbereich Low-Level Funktionen.
Habe ich das falsch in Erinnerung, oder wird auch bei Api-Funktionen viel mit Pointern gearbeitet? Meinst du das mit Low Level? Und desweiteren: Was ist der Grund? Warum Pointer statt "normaler" Variablen?
Eigentlich bin ich da ja noch gar nicht, aber alles, was ich "mitnehmen" kann an Know-how diesbezüglich, kann mir zu gegebener Zeit, wenn ich mich intensiv um das Thema kümmere, nur nutzen, nicht wahr?!Grüße
tupan
-
unser "Austausch" ist sehr informativ für mich. Zwischen diesem arbeite ich weiter an meinem Tutorial nud bin auf folgendes gestossen:
int zahl = 6
int zahl(6)ist gleichwertig. Die zweite Variante habe ich vorher noch nie gesehen. Eine technische Frage dazu: Es sieht aus, als wäre eine Variable eine Funktion?!
Hast du eine kurze Erklärung diesbezüglich?Grüße
tupan
-
nu langt's
Du antwortest nicht mehr, ich nehme daher an, du bist zu Bett gegangen. Ich denke, ich werde es dir gleichtun.
Ich hoffe, ich kann mich auch in Zukunft an dich wenden, sodenn ich Fragen habe. Ich habe in deinem Profil gelesen, dass du auch C++ mittels Internet gelernt hast. Dementsprechend wären dann für dich einige meiner Fragen geradezu zwingend folgerichtig.
Danke nochmal für die Hilfe!!!Grüße
tupan
-
tupan schrieb:
int zahl = 6
int zahl(6)ist gleichwertig. Die zweite Variante habe ich vorher noch nie gesehen. Eine technische Frage dazu: Es sieht aus, als wäre eine Variable eine Funktion?!
Hast du eine kurze Erklärung diesbezüglich?Das funktioniert nur in C++. Du rufst quasi den Konstruktor von int auf.
Vom Prinziep her, ist das sowas:
class Test { public: Test (int num1, int num2); }; [...] Test instanz(1,2);
-
ah, verstehe. int ist ja ein Objekt, dementsprechend gibt man dem Konstruktor einen Wert für die Initialisierung mit. Richtig?
Grüße
tupan
-
tupan schrieb:
Richtig?
Jap