Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

28.09.2008, 13:33

[Erledigt] namespaces in c++

hi
ich kenn namespaces bisher nur aus c# und da liegen klassendeklaration und definition ja zusammen.

ich hab da einfach unterordner gehabt wie zB

Engine/GUI

und namespace war dann Engine.GUI für jede klasse dadrin.

jetzt in c++ muss ich ja selbst denken xD. wo setze ich jetz die namespaces? einfach in der header datei und der cpp datei der klasse den inhalt umrahmen oder in der header datei den namespace machen und in der cpp datei nur "using namespace bla::klassenname"?

wahrscheinlich schwer zu verstehen xD

ich möchte einfach eine regel hören wie ich namespaces am besten nutze ;)

danke schonmal. (und haut mich bitte, wenn man kein wort versteht)


///
nochmal ne zweite frage.
muss ich in der main wirklich dann jede klasse die ich erstelle inkludieren, oder gibt es nen einfacheren weg wie zB inkludiere ordner?

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

2

28.09.2008, 13:45

Hallo,
namespaces sind in C++ so zu nutzen:

Quellcode

1
2
3
4
5
6
//header

namespace bla
{
    //Deine class etc. steht hier.
};



Quellcode

1
2
3
4
5
6
7
//cpp Datei
#include "header.hpp"

namespace bla
{
    //Deine class implementation etc. steht hier.
};


Ist ein simples Beispiel.
Aber das sagt alles ^^
Ansonsten such mal bei Google nach C++ und namespace.
Ein kleiner Test hätte es aber auch getan :p
Den Aufruf des namespace kannst du dann per using namespace(unsauber) oder using namespace::class oder per namespace::class bla machen.
Wie du es machst ist dir überlassen ;)
Aber das letzte ist sauberer.

Zu deiner zweiten Frage:
Ja :)
Man muss jede Klasse einzeln inkludieren.
In C# muss man sowas nicht machen ;)
Aber darüber kommst du schnell hinweg.
Gewöhn dir auch Zeiger und Referenzen an.
Diese kann man in C# nicht direkt nutzen.
Es gibts ja ref für Referenzen.

MFG T-Virus
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

Toa

Alter Hase

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

3

28.09.2008, 13:45

Also namespaces kannst du einfach in eine Header packen und in der datei in der du sie benutzen willst entweder per using dauerhaft drauf zugreifen oder du benutzt den scope Operator (::). Ähm wegen dem Linken von Datein gibt in Vs eine Option. Unter deinen Properties vom Projekt im Abschnitt C++ findest du Additional Link Directories .. Dort kannst du einfach deine Ordner angeben. Ich hoffe das war das was du wissen wolltest xD

Anonymous

unregistriert

4

28.09.2008, 13:46

Seit wann muss man in C# nix inkludieren? Dort heißt das nur Referenzieren und wird auf die Projektstruktur ausgeführt.

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

5

28.09.2008, 13:52

ui wusste ich nicht ;)
Danke für den Hinweis.

EDIT
Zu den Ordnerinclude.
Meinst du es mit dem include so?

Quellcode

1
#include "ordner/datei.hpp"


Dies muss man nicht, dazu kann man in den Projekt einstellungen der IDE die Ordner einbinden.
Dann musst du nur noch folgendes schreiben:

Quellcode

1
#include "datei.hpp"


So mache ich dies auch.
Hier kann man sich zwar wieder über das problem mit gleichen .hpp Dateien streiten, aber ich konnte es bis jetzt immer vermeiden ;)
Man braucht nur Fantasie und eine gute Namensfindug :)

MFG T-Virus
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

Anonymous

unregistriert

6

28.09.2008, 13:54

Wenn man z. B. die Diagnostic-Funktionalität benutzen möchte muss ich auf dieses Referenzieren, erst dann kann ich auf deren Namespaces zugreifen. ;)

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

7

28.09.2008, 13:56

Achso okay.
Werd mich da nochmal schlauer machen :)
Mein Arbeitkollege, einer der sich sehr für die Microsoft Community einsetzt und auch viel über .NET und C# weiß, kann mir da bestimmt einige Lehrstunden geben.

MFG T-Virus
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

Toa

Alter Hase

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

8

28.09.2008, 13:58

Zitat von »"T-VIRUS"«


Zu den Ordnerinclude.
Meinst du es mit dem include so?

Quellcode

1
#include "ordner/datei.hpp"


Dies muss man nicht, dazu kann man in den Projekt einstellungen der IDE die Ordner einbinden.
Dann musst du nur noch folgendes schreiben:

Quellcode

1
#include "datei.hpp"

MFG T-Virus


Ähm wenn du Ordner über die oben von mir beschriebene Funktion hinzufügst was du hier wahrscheinlich auch noch mal ansprichst musst du die Datein dann so includieren :

#inlcude <Datei.cpp> ... oder meintest du etwas anderes

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

9

28.09.2008, 14:01

Hallo,
hmm eigentlich nicht.
Ich mache es bei Code::Blocks immer so, dass ich statt <> imemr noch "" verweden.
Dies funktioniert auch :p

Ist <> nicht für die standard include Dateien des compilers?
Wenn nicht, auch nicht schlimm :)

MFG T-Virus
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

10

28.09.2008, 14:04

Zitat von »"T-Virus"«

Ist <> nicht für die standard include Dateien des compilers?
Wenn nicht, auch nicht schlimm


nein nicht ganz. diese <> bedeuten nur, dass der compiler in den standardverzeichnissen nachschaut anstatt in deinem projektverzeichnis. und wenn du neue standardverzeichnisse angibst geht das genauso mit <> und ohne pfadangaben was sehr angenehm ist.

Werbeanzeige