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

Techie

Alter Hase

  • »Techie« ist der Autor dieses Themas

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

1

19.10.2013, 20:45

Templates über Dateien verteilt...

Hi,
ich muss zurzeit die Deklaration von einer Methodendefinition trennen. Das Problem ist, dass diese Templates verwendet, und,
dass VSC++ Proff 2012 unterstützt nicht das "export" Schlüsselwort. Deswegen sehe ich mich gezwungen eine andere Möglichkeit zu finden, leider kenne ich nichts anderes.

Kann mir da jemand helfen?

Gruß Techie
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

2

19.10.2013, 21:06

"export" wurde mit C++11 gestrichen.
"Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why. Programmers combine theory and practice: Nothing works and they don’t know why." - Anon

3

19.10.2013, 21:40

Häufig wird das so gelöst:

Monster.hpp:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef GAME_MONSTER_HPP
#define GAME_MONSTER_HPP

namespace game
{
    template <typename T>
    class Monster
    {
        //...
    };
}

#include "Monster.inl"
#endif


Monster.inl:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
// Diese Datei enthält die Template-Definitionen.

// #include ist hier nicht notwendig, aber je nach IDE nützlich für die Syntaxhervorhebung.
#include "Monster.hpp"

namespace game
{
    template <typename T>
    Monster<T>::Monster()
    {
        // ...
    }
}


Der Code ist also über mehrere Headerdateien verteilt, die ineinander inkludiert werden. Die Headerdatei, die die Template-Definitionen enthält, hat hier die Dateiendung INL (kurz für inline). Die Dateiendung an sich hat keine Bedeutung für den Compiler, kannst du also nennen wie du magst.

Werbeanzeige