如何在 C++ 中将字符串作为默认参数传递

How to pass a string as default argument in C++

如何正确传递一个常量字符串,例如:"Hello" 作为构造函数的默认参数而不收到任何警告和错误?换句话说,我如何在调用函数之前为它们保留内存?

#include <iostream>

const char *defString = "Hello";
void foo(const char *str = defString) {
    std::cout << str;
}

int main() {
    foo();
    foo("Hello, world!\n");
}