Я написал такую программу
#include <iostream>
using namespace std;
class Fruit {
private:
string m_name;
string m_color; public:
Fruit() = default;
Fruit(const string& name, const string& color)
: m_name{name}, m_color{color}
{
}
const string& getName() const{
return m_name;
}
const string& getColor() const{
return m_color;
}
};
class Apple : public Fruit {
private:
double m_fiber; public:
Apple() = default;
Apple(const string& name, const string& color, double fiber)
: Fruit{name, color}, m_fiber{fiber}
{
}
const double getFiber() const{
return m_fiber;
}
print(){
cout << "Apple(" << getName() << ", " << getColor() << ", " << getFiber() << ")\n";
}
};
int main() {
const Apple a{ "Red delicious", "red", 4.2 };
a.print();
}
Этот код не компилируется. Однако, если я уберу слово «const» внутри int main (), оно будет работать. Почему это так?