multiple definition of ..



  • ich habe eine headerdatei, die ich extra mit diesen verdammten makros versehen habe, damit es keine probleme mit mehrfachdeklarationen gibt...
    aber sobald ich diese datei in 2 klassen einbinde, die diese funktionen benötigen meckert der compiler:

    In function `get_rand_nmb(unsigned short, bool)':
    ../global_fkt.h:9: multiple definition of `get_rand_nmb(unsigned short, bool)'
    build/../global_fkt.h:9: first defined here
    
    #ifndef GLOABELFKTS_h
    #define GLOABELFKTS_h
    
    #include <iostream>
    #include <cstdlib>
    #include <math.h>
    #include <ctime>
    
    float get_rand_nmb(unsigned short range, bool negative = false)
    {
    	float zahl;
    	if(negative)
    		zahl = (rand() % range) - range/2;
    	else zahl = rand() % range;
    
    	return zahl;
    }
    ...
    
    #endif
    

    wie umgehe ich das elegant? ich möchte weiterhin in beide dateien diese header einbinden.


  • Mod

    inline

    <math.h> -> <cmath> (<math.h> ist nicht falsch, passt aber nicht so richtig)



  • krass, danke, ich wusste noch gar nicht so genau wofür inline alles gut ist^^

    das mit cmath, hatte ich vergessen, ist wohl bisherige gewohnheit gewesen


Anmelden zum Antworten