C++11 理解如何理解c+的“const”性质+;代码 在我尝试自学C++的过程中,我希望能在阅读一个表达式/函数的正确性方面得到一些帮助。例如,下面的代码: const screen &display(std::ostream &output) const { do_display(output); return *this; }
在上述代码中。函数C++11 理解如何理解c+的“const”性质+;代码 在我尝试自学C++的过程中,我希望能在阅读一个表达式/函数的正确性方面得到一些帮助。例如,下面的代码: const screen &display(std::ostream &output) const { do_display(output); return *this; },c++11,constants,C++11,Constants,在上述代码中。函数display中有两个const声明。在“英语”中如何正确理解?示例:第一个const是要引用的const或要键入屏幕的const?等等,const-ness在引用为const时的确切含义是什么。我已经试着读过了,但在这一点上仍然有点混乱 请随意指向youtube视频或其他参考资料。希望材料非常清楚。在英语中它的意思是: display()是其类的常量方法(这是第二个const关键字),它将对std::ostream类实例的引用作为其参数,并返回对screen类的常量(这是第一
display
中有两个const
声明。在“英语”中如何正确理解?示例:第一个const
是要引用的const
或要键入屏幕的const
?等等,const
-ness在引用为const时的确切含义是什么。我已经试着读过了,但在这一点上仍然有点混乱
请随意指向youtube视频或其他参考资料。希望材料非常清楚。在英语中它的意思是:
display()
是其类的常量方法(这是第二个const
关键字),它将对std::ostream
类实例的引用作为其参数,并返回对screen
类的常量(这是第一个const
关键字)实例的引用
const
引用表示此引用不能用于修改被引用的对象。您只能使用引用来访问类的成员,而不能更改这些成员,或者调用类的const
方法(比如display
()是它自己的类的const
方法)。在英语中,它的意思是:
display()
是其类的常量方法(这是第二个const
关键字),它将对std::ostream
类实例的引用作为其参数,并返回对screen
类的常量(这是第一个const
关键字)实例的引用
const
引用表示此引用不能用于修改被引用的对象。您只能使用引用来访问而不能更改类的成员,或者调用类的const
方法(比如display
()是它自己的类的const
方法)。我一直发现记住它的最简单方法是:
const
适用于它左边的任何东西,除非它左边没有任何东西,在这种情况下,它适用于它右边的任何东西
因此,您有一个返回对屏幕的const
引用的
const
引用意味着您不能修改引用的对象。const
方法意味着该方法不会修改它被调用的对象(该方法中的这个指针将指向一个const
对象)。我一直发现记住它的最简单方法是:
const
适用于它左边的任何东西,除非它左边没有任何东西,在这种情况下,它适用于它右边的任何东西
因此,您有一个返回对屏幕的const
引用的
const
引用意味着您不能修改引用的对象。const
方法意味着该方法不会修改它正在被调用的对象(该方法中的这个指针将指向一个const
对象)。从右到左读取它。
您有一个constant方法,该方法返回对屏幕的引用,该屏幕是常量
返回常量引用意味着您无法修改返回的内容。
如果调用该方法并将其分配给某个变量,则该变量必须使用const关键字。唯一的例外是,如果将方法返回的引用强制转换为非常量的引用
关于从右向左规则的更多细节,这里有一个有用的链接:
这实际上是由UCSD的一位教授写的(他写得很好)
方法右侧的const表示不能修改函数中的任何实例变量(大部分情况下)。还有更多内容,但有关更多详细信息,请参阅:
从右到左阅读。
您有一个constant方法,该方法返回对屏幕的引用,该屏幕是常量
返回常量引用意味着您无法修改返回的内容。
如果调用该方法并将其分配给某个变量,则该变量必须使用const关键字。唯一的例外是,如果将方法返回的引用强制转换为非常量的引用
关于从右向左规则的更多细节,这里有一个有用的链接:
这实际上是由UCSD的一位教授写的(他写得很好)
方法右侧的const表示不能修改函数中的任何实例变量(大部分情况下)。还有更多内容,但有关更多详细信息,请参阅:
从右到左阅读
int const & foo() const
引用一个
int const & foo() const
int常量&foo()常量
const int
const
可以位于int
的任意一侧。您可以将其读取为“常量整数”或“常量整数”。从右向左读取
int const & foo() const
引用一个
int const & foo() const
int常量&foo()常量
const int
const
可以位于int
的任意一侧。您可以将其读取为“常量整数”或“常量整数”