【发布时间】:2014-10-31 12:32:05
【问题描述】:
我正在研究如何将 const 结构引用转换为非 const 结构指针。
我有一个名为 Foo 的结构:
struct Foo
{
Foo& someFunc()
{
//do something
return *this;
}
};
我有一个方法:
struct Bar
{
Foo* fooPointer;
void anotherFunc(const Foo& foo)
{
// set fooPointer to foo's pointer
}
};
我会这样称呼它:
Foo foo;
Bar bar;
bar.anotherFunc(foo.someFunc());
但是我该如何编写 anotherFunc() 呢?
void anotherFunc(const Foo& foo)
{
fooPointer = &foo; // <-- This doesn't work as foo is still const
}
【问题讨论】:
-
为什么
anotherFunc需要一个const引用? -
如果您需要存储指向非常量对象的指针,请传递非常量引用,否则您只是在自找麻烦。
-
@ecatmur 就示例而言,它就是这样做的。我问的是一个非常具体的问题,而不是寻求帮助我重构我的代码。
-
当代码做了一些愚蠢的事情时,正确的做法是质疑它是否真的需要这样做。
-
我很感激。我的评论可能被误解了。我的意思是事实上的方式......而不是抱怨的方式。我尝试以非常简洁的方式写问题,因为这样会得到你们更好的回应……但这通常意味着我每次都会收到相同的几个初始问题:-/
标签: c++ pointers struct reference