C++ 无效转换

1 c++ compiler-errors g++

以下代码产生编译错误,invalid conversion from 'const char*' to 'char*'. 双方ptrInputFileNameptrFileName都被宣布为const char*。关于如何编译它的任何建议?谢谢你。

TextInputBuffer::TextInputBuffer(const char *ptrInputFileName)
    : ptrFileName(new char[strlen(ptrInputFileName) + 1])
{
    //--Copy the file name.
    std::strcpy(ptrFileName, ptrInputFileName);
Run Code Online (Sandbox Code Playgroud)

小智 5

显然,您不能复制到 const * 指向的内容中 - 删除 const,如果这导致调用构造函数出现问题,那么您所做的事情在语义上是无效的。

此外,您使用伪匈牙利语会使代码难以阅读。去掉ptr前缀,让名字更短。

  • 这些名称前缀的负值需要得到更广泛的认可。 (2认同)