Rit*_*ena 3 c++ const const-correctness member-functions this-pointer
我是c ++的新手,面临着常量对象的问题.我已经声明了一个名为function的常量成员函数(并且我已经知道常量函数只能由常量对象调用)但是这里常规对象调用一个常量对象.请解释为什么会这样.代码就在这里
myClass.h
#ifndef MYCLASS_H
#define MYCLASS_H
class myClass
{
public:
void function() const;
};
#endif
Run Code Online (Sandbox Code Playgroud)
myClass.cpp
#include "myClass.h"
#include<iostream>
using namespace std;
void myClass::function() const{
cout<<"this is a constant object";
}
Run Code Online (Sandbox Code Playgroud)
main.cpp中
#include <iostream>
using namespace std;
#include "myClass.h"
int main() {
myClass obj;
obj.function();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
请帮帮我.谢谢
这就是C++的工作方式.可以在非const对象上调用const成员函数,因为const的正确性不能被破坏.不行的是在const对象上调用非const成员函数.
请注意,如果您有非const重载function(),那么将调用它.
正如我所了解到的,一个常量函数只能被一个常量对象调用
不!
这是周围的其他方法:
非 const 成员函数(假设称为“MF”)可以读取和修改对象,因此:
所以const 限定的成员函数可以应用于任何对象;限制在于这些 const 成员函数可以调用的内容。
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |