这段程序会输出什么?
C++
#include <iostream>
#include <string>
class Message {
public:
virtual std::string kind() const { return "base"; }
virtual ~Message() = default;
};
class Alert : public Message {
public:
std::string kind() const override { return "alert"; }
};
void by_value(Message message) { std::cout << message.kind() << '\n'; }
void by_reference(const Message& message) { std::cout << message.kind() << '\n'; }
int main() {
Alert alert;
by_value(alert);
by_reference(alert);
}