这里是初学者
我正在尝试为我的C++学习项目制作一个“记录器”,我已经设置了代码来管理日志记录本身,但是我无法从其他类获得该功能。
这是我的“调试器”类
class MSEdebug
{
MSEdebug(){logOutput.open("log.txt");}
~MSEdebug() { logOutput.close(); }
void debuglog(std::string info)
{
#ifdef DEBUG
std::cout << "LOG:" << info << std::endl;
#endif // DEBUG
logOutput << "LOG:" << info << "\n";
}
std::ofstream logOutput;
};
我想做的是:
#include "MSE_debug.h"
//...
MSEapp::debugTest()
{
MSEdebug::debuglog("Test, 1, 2, 3...");
}
现在这是行不通的,你们有经验的C++程序员可能已经在翻白眼了,但你能不能好心告诉我,我将如何使它工作。
顺便说一句,我希望我做的对,这是我的第一个问题,所以我很抱歉如果它是坏的
这可能是一个单例可能是有序的情况:
class MSEdebug {
private:
MSEdebug(){ logOutput.open("log.txt"); }
~MSEdebug() { logOutput.close(); }
public:
static MSEdebug& instance(){
static MSEdebug debug;
return debug;
}
void debuglog(std::string info) {
#ifdef DEBUG
std::cout << "LOG:" << info << '\n';
#endif // DEBUG
logOutput << "LOG:" << info << '\n';
}
private:
std::ofstream logOutput;
};
用法如下:
#include "MSE_debug.h"
//...
MSEapp::debugTest()
{
MSEdebug::instance().debuglog("Test, 1, 2, 3...");
}
规范的方法是使用singleton模式来拥有msedebug
类的唯一实例,该实例很容易访问。
class MSEdebug
{
MSEdebug(){logOutput.open("log.txt");}
public:
~MSEdebug() { logOutput.close(); }
void debuglog(std::string info)
{
#ifdef DEBUG
std::cout << "LOG:" << info << std::endl;
#endif // DEBUG
logOutput << "LOG:" << info << "\n";
}
static MSEdebug& getInstance() {
static MSEdebug instance;
return instance;
}
private:
std::ofstream logOutput;
};
然后您可以这样使用它:
MSEdebug::getInstance().debuglog("Test, 1, 2, 3...");
问题内容: 我需要针对将返回零或一的数据库运行查询(检查是否存在特定条件)。我已获得审查的技术规范指出,我应该创建一个存储过程,该存储过程将返回单行,并带有称为“结果”的单列,该列将包含0或1的位值。我不确定存储过程将是最好的方法,但是不确定一点,所以我想请教您一些意见。我可以想到的两个选择是: 1:创建一个SQL标量值函数,该函数执行查询并返回一点。然后,可以使用“ TEXT” SqlComma
我试图将一个向量元组转换成一个向量元组(反之亦然)。调用函数时遇到问题。当我用一个参数调用它时,我得到一个错误: prog。cpp:在函数“int main()”中: prog。cpp:44:24:错误:调用“tuple_transpose(std::tuple)”时没有匹配函数 这是一个演示,其中包含错误:http://ideone.com/7AWiQQ#view_edit_box 我做错了什么
null 我可以推断,在Java中,这种类型的方法可以应用于带有一个参数的函数接口。 还有,有没有一个参数函数接口的例子,函数有一个参数,不像上面的例子?
*我想在那里调用BankHashSet empty consructor。谢谢.
我不明白为什么下面的代码会打印两次。我以为应该是个人和学生。当通过“a”对象调用printPerson()内部的getInfo()时,为什么要调用Person类内部的一个,为什么不调用Student类中的一个?提前谢谢。
一个trait中的静态函数可以调用同一trait中的另一个静态函数吗?假设我有以下特点: 那不行。代码不能在这里编译。 此外,没有类型让我使用完全限定的语法,如