const char* 自定义字符串的区别 class

const char* difference in custom String class

我有一个 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 的方法并选择 returns 和 char * 的方法。 std::string 有方法 c_strdata