Anonymní profil vesi – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil vesi – Programujte.comAnonymní profil vesi – Programujte.com

 

Příspěvky odeslané z IP adresy 213.220.252.–

vesi
C / C++ › Úprava kódu
18. 5. 2015   #202209

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.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý