mehrfach include verhindern



  • heo

    ich habe 3 header files und jedes Headerfile soll mit jedem verlinkt werden....

    mit

    #ifndef FILE1_H
    #define FILE1_H
    ...
    #endif
    

    wollte ich das verhindern aber das hat zur Folge dass der compiler keine Infos aus den Headerfiles kennt.,....

    wie kann ich das umgehen?

    mfg



  • Das kommt ganz darauf an, was der Compiler aus den einzelnen Header-Files jeweils kennen muß - in vielen Fällen reichen Forward-Deklarationen völlig aus:

    //member.h
    #ifndef MEMBER_H
    #define MEMBER_H
    
    class master;
    
    class member
    {
      master* m_chief;//hier reicht die Forward Deklaration
    ...
    };
    
    #endif
    
    //master.h
    #ifndef MASTER_H
    #define MASTER_H
    
    #include "member.h"
    
    class master
    {
      member m_elements[100];//benötigt die komplette Definition
    ...
    };
    


  • d3f3nd3r schrieb:

    heo

    ich habe 3 header files und jedes Headerfile soll mit jedem verlinkt werden....

    mit

    #ifndef FILE1_H
    #define FILE1_H
    ...
    #endif
    

    wollte ich das verhindern aber das hat zur Folge dass der compiler keine Infos aus den Headerfiles kennt.,....

    wie kann ich das umgehen?

    Du hast hoffentlich für jede Datei ein anderes define verwendet.

    BTW: Der MS Compiler unterstüzt #pragma once, was die ganze Sache vereinfacht.


Anmelden zum Antworten