Ahoj,
předem se omlouvám za triviální dotaz, ale neprogramuju v C++, ale v C# takže je to pro mě nepřekonatelný problém :)
Měl jsem funkci
#ifndef ABSTRACT_LOGGER_H
#define ABSTRACT_LOGGER_H
#include <string>
namespace Palo {
namespace SpreadsheetFuncs {
class AbstractLogger {
public:
enum Type {
LOG_ERROR, LOG_WARNING, LOG_INFO
};
virtual void log(Type t, const std::string msg) throw () = 0;
};
}
}
#endif
kterou volala následující funkce
#ifndef XLL_CELL_LOGGER_H
#define XLL_CELL_LOGGER_H
#include <fstream>
#include <PaloSpreadsheetFuncs/AbstractLogger.h>
namespace Palo {
namespace XLL {
class XLLCellLogger : public Palo::SpreadsheetFuncs::AbstractLogger {
public:
XLLCellLogger();
~XLLCellLogger();
static XLLCellLogger& getInstance() {
static XLLCellLogger pl;
return pl;
}
void log( Type t, std::string msg, bool force_logging ) throw();
void log( Type t, std::string msg ) throw() {
log(t, msg, false);
};
private:
std::ofstream m_log;
};
}
}
#endif
bohužel se první funkce změnil string
#ifndef ABSTRACT_LOGGER_H
#define ABSTRACT_LOGGER_H
#include <string>
namespace Palo {
namespace SpreadsheetFuncs {
class AbstractLogger {
public:
enum Type {
LOG_ERROR, LOG_WARNING, LOG_INFO
};
virtual void log(Type t, const std::string &msg) throw () = 0;
};
}
}
#endif
zkoušel jsem tedy kód upravit následně
#ifndef XLL_CELL_LOGGER_H
#define XLL_CELL_LOGGER_H
#include <fstream>
#include <PaloSpreadsheetFuncs/AbstractLogger.h>
namespace Palo {
namespace XLL {
class XLLCellLogger : public Palo::SpreadsheetFuncs::AbstractLogger {
public:
XLLCellLogger();
~XLLCellLogger();
static XLLCellLogger& getInstance() {
static XLLCellLogger* pl;
return *pl;
}
void log( Type t, std::string msg, bool force_logging ) throw();
void log( Type t, std::string msg ) throw() {
log(t, msg, false);
};
private:
std::ofstream m_log;
};
}
}
#endif
Což sice projde kompilací, ale v reálu to pak nefunguje. Mohl by mi někdo poradit jak správně kód upravit? Díky.