在一些C++代码中,我使用整数来存储大量不断变化的数据。 为了分析我的程序,我想记录某些变量的某些变化,例如某个值被赋值的频率以及赋值多长时间一次(新值与旧值相同)。C++派生自本机类型
如果类型是一个Foo类,我只是派生一个新的LoggingFoo并将我的日志数据添加到我感兴趣的成员函数中,然后调用父成员函数。 我不得不更新我的代码以使用新类型,但只要我最初与typedefs一致,那是一个单行更改。
我的问题是,我想添加日志记录的变量是一个int。你不能从C + +内置类型派生(你能吗?)
我的问题是是否有一种聪明的方式来从基本类型(int,float,double等)派生。
的解决方案可能是定义一个新的类,它有效是一个int ..它定义每操作一个int能做的,只是应用于的操作私人int数据成员。 这个策略可以工作,但也许其他人已经做了这样一个类,我只能使用“fakeint.h”头文件定义。在我自己实现它们之前,是否有这样的“代理本地类包装器”类型定义已经可用?
我当然意识到我的代理int不能与int互换使用,特别是因为现有的函数定义都期望int ..但是对于我的应用程序来说,这全部在一个内部循环中,它正在做很多简单的native + - *^=操作,不用作函数参数或任何东西。
你应该看看boost的操作符:http://www.boost.org/doc/libs/1_39_0/libs/utility/operators.htm。 它可以让你创建一个具有所有典型运算符的类,使它像一个本地整数类型一样工作。 – 2009-07-26 02:18:08
@Evan ..谢谢,这是一个很好的资源!过度需要我需要的东西,但如果我确实需要推出自己的产品,则会显着减少冗余工作。 – SPWorley 2009-07-26 02:21:22