【发布时间】:2012-03-20 21:45:35
【问题描述】:
我有一个 20-30 行的 C++ 函数,它引用了 int 以进行可能的更新。现在我将传递给它的成员替换为封装更多数据的成员的成员,例如:
searchState.matchedOK = specificSearch(*pageIndices.GetStringIByRef(), searchState); //new, and overwritten.
searchState.matchedOK = specificSearch(pageOffsetInText, searchState); //old
我想将此修改本地化为上面调用的行和函数,因为一旦我验证了等价性及以上,就应该删除旧成员。
这可以通过简单的演员表实现吗?
如果你想要代码:
static bool specificSearch(int &matchLocation, const SearchSpecs &specs) {/**/}
以及最近添加的成员:
inline unsigned int *GetStringIByRef() {return &stringI;}
【问题讨论】:
-
发布函数的新旧原型是有意义的,但通常这应该适用于 C 样式转换或
static_cast。 -
@STATUS_ACCESS_DENIED:我一直在函数签名(原型?)中尝试 *、&、未签名等,但都无济于事。
static_cast只是普通C演员不是吗? -
我可以将
stringI更改为已签名,但我可能需要在稍后阶段将其 MSB 用作布尔标志。 -
现在我们正在谈论,有了签名,这个问题就更有意义了:)
标签: c++ pointers reference casting unsigned-integer