Когда я писал оверидную функцию с параметром const вместо неконстантного параметра, я думал, что компилятор сообщит об ошибке, потому что базовая функция имеет неконстантный параметр, но ей удалось его скомпилировать. Почему?
Мой код:
#include <iostream>
class A
{
public:
virtual uint64_t cal(uint64_t value)
{
std::cout << value << std::endl;
return value;
}
};
class B : public A
{
public:
uint64_t cal(const uint64_t value) override;
};
uint64_t B::cal(const uint64_t value)
{
std::cout << value + 1 << std::endl;
return (value+1);
}
int main()
{
B b;
b.cal(1);
return 0;
}