我希望能够通过引用(广义上的引用,即A&或A*)将A类对象(称为a)传递给另一个B类的构造函数。我不希望在B内修改'a'('a'是只读的且大小较大,这就是我想要通过引用传递它的原因)。我知道两个选项:
1)将'a'作为参数传递,并将其声明为const引用
2)将'a'作为指针传递,并将其声明为const指针
选项1的缺点是我可能会错误地传递r值。选项2的缺点是我可能会错误地传递空指针。
我的问题是: 1)我对上述缺点正确吗? 2)是否有其他推荐的通过引用传递'a'的方法?
我在下面的链接中看到了答案。但我很好奇除了那个问题中发布的内容之外,是否还有其他选项。 在C++中通过指针传递而不是通过引用传递有什么好处?
1)将'a'作为参数传递,并将其声明为const引用
2)将'a'作为指针传递,并将其声明为const指针
const A & a_
2) 将'a'作为参数传递
const A * a_
选项1的缺点是我可能会错误地传递r值。选项2的缺点是我可能会错误地传递空指针。
我的问题是: 1)我对上述缺点正确吗? 2)是否有其他推荐的通过引用传递'a'的方法?
我在下面的链接中看到了答案。但我很好奇除了那个问题中发布的内容之外,是否还有其他选项。 在C++中通过指针传递而不是通过引用传递有什么好处?
const_cast<A*>
。Riju: C++为程序员提供了安全防护,但几乎每种安全措施都有后门,以备不时之需。没有100%的保护,但const A*
对于你正在做的事情来说已经足够安全了。 - Mooing Duck