什么是运算符在这里重载:String8 :: operator const char*()const

pie*_*fou 2 c++ android

我知道它用于获取包含c字符串,类似于std::string.c_str().但我应该如何使用运算符?

//android/frameworks/base/include/utils/String8.h
458 inline String8::operator const char*() const
459 {  
460     return mString;
461 }  
Run Code Online (Sandbox Code Playgroud)

wkl*_*wkl 6

这是一个用户定义的转换,它允许用户从一个用户定义的类型到另一种类型的转换.

你可以做这样的事情,用它来const char*从一个String8对象获得一个.

String8 str = "Hello";
const char *cptr = str; // gets const char* from str

std::strlen(str); // std::strlen expects a const char*
Run Code Online (Sandbox Code Playgroud)