自定义字符串类中的常量字符*差异

const char* difference in custom String class

本文关键字:字符 差异 常量 字符串 自定义      更新时间:2023-10-16

我有一个通用类型的String,它具有我的证书cert.pem的值我正在将其传递给一个具有强制转换的函数const char*但它不起作用。我的代码在下面不起作用

String sCertificate = "cert.pem";
if ( SSL_CTX_use_certificate_file(ctx,(const char*)&sCertificate, SSL_FILETYPE_PEM) <= 0 )
        {
                mPtrLogger->logMsg(CF, "", "Unable to Load Certificate file", INFO);
                abort();
        }

并且此代码有效

if ( SSL_CTX_use_certificate_file(ctx,"cert.pem", SSL_FILETYPE_PEM) <= 0 )
        {
                mPtrLogger->logMsg(CF, "", "Unable to Load Certificate file", INFO);
                abort();
        }

我似乎不明白问题是什么。

除非 String 类型具有重载的转换运算符,否则无法通过强制转换进行转换。 (可以将其视为将一个复杂类强制转换为char *

查看String的方法并选择返回char *的方法。 std::string具有c_strdata的方法。