What does this program print?

from Inheritance
C++23 intermediate 2 min

What does this program print?

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);
}
Open in playground
Report an error