fish-guts
Erfahrenes Mitglied
Hi Zusammen
Ich habe das Problem, dass ich in einer Funktion einen Satz Variabeln definieren möchte, deren Werte zur ganzen Programmlaufzeit gespeichert werden. Nun habe ich folgende Klasse definiert:
Nun wird in folgender Funktion der Variabeln
ein Wert zugewiesen:
Die Zuweisung funktioniert auch problemlos. Wenn ich den Wert von s_port in der selben Funktion ausgeben lasse, wird der korrekte Wert angezeigt.
Nun möchte ich aber folgendes: Ich habe eine Klasse "Sockets" definiert:
Nun möchte ich mit folgender Funktion den Wert von s_port (siehe oben) zurückgeben lassen:
Wenn ich die Variable in der Klasse definiere, kommt dabei nur Unsinn raus. Daher wollte ich die Variable als static definieren, damit der Wert wärhend der Programmlaufzeit erhalten bleibt. Das geht aber nicht, weil dann der Linker einen Error zurückmeldet.
Wenn ich die Variable nun ausserhalb der Klasse als globale Variable mit static definiere, wird alles korrekt kompiliert, get_s_port() gibt aber immer 0 zurück.
Kann mir jemand sagen, was ich genau falsch gemacht habe?
Ich habe das Problem, dass ich in einer Funktion einen Satz Variabeln definieren möchte, deren Werte zur ganzen Programmlaufzeit gespeichert werden. Nun habe ich folgende Klasse definiert:
Code:
#include <iostream>
#include <cstdlib>
#include <string>
#include "confuse.h"
class Config
{
private:
int s_port;
public:
int load(const char* file);
int get_s_port(void) { return s_port; }
};
Code:
s_port
Code:
int Config::load(const char* file)
{
general = cfg_getsec(services,"general");
if(general)
{
s_port = cfg_getint(general,"port");
}
}
Nun möchte ich aber folgendes: Ich habe eine Klasse "Sockets" definiert:
Code:
class Sockets
{
public:
Sockets(void);
int connect_services(int port,char *server);
int Sockets::open(void);
public:
~Sockets(void);
};
Code:
int Sockets::connect_services(int port,char *server)
{
class Config conf
port = conf.get_s_port();
cout << port << endl;
}
Wenn ich die Variable nun ausserhalb der Klasse als globale Variable mit static definiere, wird alles korrekt kompiliert, get_s_port() gibt aber immer 0 zurück.
Kann mir jemand sagen, was ich genau falsch gemacht habe?