小编cpp*_*dev的帖子

什么是最有效的线程安全C++记录器?

我正在开发一个性能关键的多线程应用程序.我查看了rlog,Ace和Boost日志记录.我之所以选择rlog是因为我认为它是最快的(当禁用日志记录时,它的开销最小).

我遇到的问题是它显示文件名,行号等,即使在发布模式下也是如此.如果你能告诉我如何关闭这些信息,我的问题可能会得到解决.在任何情况下,对于我的情况,C++中最有效的记录器是什么?

c++ logging

85
推荐指数
5
解决办法
8万
查看次数

C++中的双重调度/多方法

我有一个关于C++双重调度的问题.在下面的代码中,我希望第二组的结果与第一组的结果相匹配.

我不知道实际的类型(除非我尝试dynamic_cast)但我知道该对象继承自BaseClass类型.实现这一目标的最有效(性能)方法是什么?

谷歌搜索了一段时间后,我发现了双重调度和loki多方法.我在Shape示例中遇到的问题是,在我的应用程序中,Processor和BaseClass完全独立,并且没有可以相互调用的常用方法.其次,只有一个处理器(即没有从它继承).

谢谢你的帮助.

#include <iostream>
#include <string>
using namespace std;

class BaseClass{
public:
       BaseClass(){}
       virtual void myFunction(){cout << "base myFunction called" << endl;}
};

class Derived1: public BaseClass{
public:
       Derived1():BaseClass(){}
       void myFunction(){cout << "Derived1 myFunction called" << endl;}
};


class Derived2: public BaseClass{
public:
       Derived2():BaseClass(){}
       void myFunction(){cout << "Derived2 myFunction called" << endl;}
};

class Derived3: public BaseClass{
public:
       Derived3():BaseClass(){}
       void myFunction(){cout << "Derived3 myFunction called" << endl;}

};

class Processor{
public:
       Processor(){}
       virtual void processObj(BaseClass* bc){cout << "got …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism design-patterns double-dispatch late-binding

9
推荐指数
3
解决办法
5768
查看次数