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

问题描述:

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

+1

你在说什么警告/错误? – arrowd

+0

@arrowd一个主要的是:C:... \ main.cpp | 26 |警告:不推荐将字符串常量转换为'char *'[-Wwrite-strings] | – Babresepid

+0

顺便说一下,我需要char * cos它是我们作业的一部分 – Babresepid

#include <iostream> 

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

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

有没有别的办法?如果我想在功能中使用50个字符做什么? (不使用“新”关键字来分配内存) – Babresepid