我是 C++ 的新手,面临常量对象的问题。我已经声明了一个名为function 的常量成员函数(据我所知,常量函数只能由常量对象调用),但这里的常规对象调用常量目的。请解释为什么会这样。 代码在这里
myClass.h
#ifndef MYCLASS_H
#define MYCLASS_H
class myClass
{
public:
void function() const;
};
#endif
myClass.cpp
#include "myClass.h"
#include<iostream>
using namespace std;
void myClass::function() const{
cout<<"this is a constant object";
}
main.cpp
#include <iostream>
using namespace std;
#include "myClass.h"
int main() {
myClass obj;
obj.function();
return 0;
}
请帮帮我。 谢谢
最佳答案
这就是 C++ 的工作方式。可以在非 const 对象上调用 const 成员函数,因为那样不会破坏 const 的正确性。在 const 对象上调用非 const 成员函数是不可行的。
请注意,如果您有 function()
的非常量重载,则会调用该重载。
关于c++ - 常量函数由非常量对象调用。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53365348/