如何 const 声明作为参数发送的 this 指针
我想 const 声明作为参数接收的 this 指针。
static void Class::func(const OtherClass *otherClass)
{
// use otherClass pointer to read, but not write to it.
}
它是这样调用的:
void OtherClass::func()
{
Class::func(this);
}
如果我不 const 声明 OtherClass 指针,这不会编译,我可以更改它。
谢谢。
I want to const declare the this pointer received as an argument.
static void Class::func(const OtherClass *otherClass)
{
// use otherClass pointer to read, but not write to it.
}
It is being called like this:
void OtherClass::func()
{
Class::func(this);
}
This does not compile nad if i dont const declare the OtherClass pointer, I can change it.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
处理 const 和指针时,诀窍是从右到左读取。查看 http://www.parashift.com/c++-faq- lite/const- Correctness.html 以获得良好的概述。
When dealing with const and pointers, the trick is to read right-to-left. Check out http://www.parashift.com/c++-faq-lite/const-correctness.html for a good overview.
这在我的机器上编译得很好:
那么你做了什么不同的事情呢?
This compiles fine on my machine:
So what do you have done differently?
不能像这样定义静态类成员函数:
该函数必须在类声明中声明为静态,然后函数定义如下:
You cannot define static class memberv functions like this:
The function must be declared static in the class declaration, and then the function definition looks like:
如果您不会更改指针或指向的对象,为什么不采用 const 引用呢?
If you won't change the pointer or the object pointed to, why not take a const reference instead?