Array oder Vector Klasse gesucht
-
Hallo zusammen,
ich bin C/C++ Anfänger und erstelle grade ein Programm mit Visual C++ 2010 Express unter Windows 7.
Den Code habe ich selbst geschrieben, es werden im Moment also keine Ressourcendateien oder so verwendet, nur eine main.cpp (in der Datei habe ich den kompletten Code).
Jetzt würde ich gerne einen Array (evtl. auch mit der Vector-Klasse) erstellen, aber um die Vector-Funktionen (http://www.fredosaurus.com/notes-cpp/stl-containers/vector/header-vector.html) zu nutzen, muß ich anscheinend per #include <vector> die Vector-Klasse einbinden, was mir Visual C++ mit haufenweise Pragma-Meldungen zu veralteten String-Funktionen in dieser Klasse kommentiert.
Da ich kein Fan von Deaktivieren von Fehlermeldungen oder auch nur Warnungen bin, würde ich gerne einen Weg suchen, wie ich ein Array erstellen und auch die ganzen üblichen Funktionen wie size, pop, insert usw. nutzen kann.
1. Könnt ihr mir dazu einen Tip geben, woher man eine Array-Klasse bekommt oder in C einbindet, die nach üblichen Programmier-Standards funktioniert?
2. Noch eine Frage: Gibt es eine Möglichkeit in Visual C++ Code auszulagern, ohne Funktionen, Variablen etc. vorher im ausgelagerten Code bekannt zu machen?
Daß man also an einer Stelle im Code nur dem Compiler sagt, hier den Code aus Datei extension.cpp einfügen?
So daß man z.B. zwei Dateien hat (Pseudocode):main.cpp
string test = "test"; inb b = 2; LRESULT CALLBACK WndProc(...) { insertcodefrom extension.cpp; }
extension.cpp
MessageBox(test);
Über Hilfe zu den Themen direkt oder auch in Form von Links (ich les mich gern ein), würd ich mich freuen.
Viele Grüße,
Jörg
-
OGDA schrieb:
muß ich anscheinend per #include <vector> die Vector-Klasse einbinden, was mir Visual C++ mit haufenweise Pragma-Meldungen zu veralteten String-Funktionen in dieser Klasse kommentiert.
An std::vector ist nichts veraltet und da kommen normalerweise auch keine Fehlermeldungen. Zeig mal, was du da machst ...OGDA schrieb:
Daß man also an einer Stelle im Code nur dem Compiler sagt, hier den Code aus Datei extension.cpp einfügen?
Das geht zwar im Prinzip, aber das ist nicht die Art, wie man in C++ Programme modularisiert.
Teile deinen Code in mehrere *.cpp Dateien auf, und mach diese über *.h Dateien miteinander bekannt:
Main.cpp
#include "extension.h" void blubb() { MyClass blob; int x = blob.foo(42); }
extension.h
#pragma once class MyClass { public: int foo(int x); };
extension.cpp
#include "extension.h" MyClass::foo(int x) { return 2 * x; }
-
Hallo,
hab das nochmal ausgetestet. Die Pragma-Warnungen erscheinen, sobald
#include <strsafe.h> zusätzlich mit
#include <vector>
angegeben wurde.Zu strsafe.h habe ich folgendes gefunden:
https://buildsecurityin.us-cert.gov/bsi/articles/knowledge/coding/272-BSI.htmlIch habe die Zeile mit strsafe.h mal auskommentiert, es erscheinen jetzt keine Warnungen mehr.
Vielen Dank für den Tip!
Zum Aufteilen von Code:
Die Bekanntmachung in anderen Dateien kannte ich schon, aber besteht die Chance, daß Du mir die Möglichkeit, wie man Code aus einer anderen Datei "direkt einliest" sagst, oder ist das zu "böse"?Danke & Viele Grüße,
Jörg
-
Hallo Jörg,
OGDA schrieb:
ich bin C/C++ Anfänger und erstelle grade ein Programm mit Visual C++ 2010 Express ...
Da bist du aus zwei Gründen hier falsch:
1.) Ist dies das MFC-Unterforum und MFC ist in der Express-Variante nicht enthalten und
2.) solltest Du als Anfänger dich erstmal mit reinem C++ (Nicht C!) und der STL beschäftigenZu strsafe.h: http://msdn.microsoft.com/en-us/library/ms647466(VS.85).aspx