在一些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