什么是运营商超载的位置:String8 ::运营商为const char *()const的 [英] what is the operator be overloading here : String8::operator const char*() const

查看:433
本文介绍了什么是运营商超载的位置:String8 ::运营商为const char *()const的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道它是用来获取包含C字符串,类似的std :: string.c_str()但是我应该如何使用操作?

  //的Andr​​oid /框架/基/有/ utils的/ String8.h
458在线String8 ::运营商为const char *()const的
459 {
460回mString;
461}


解决方案

您可以做这样的东西,用它来获得为const char * String8 对象。

  String8海峡=你好;
为const char * CPTR = str中; //获取来自海峡为const char *的std :: strlen的(STR); //的std :: strlen的期望一个const char *

编辑:供参考,像这样的运营商转换运营商

I know it is used to get the containing c string ,similar to std::string.c_str(). But how should I use the operator?

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

解决方案

You could do stuff like this, by using it to get a const char* from a String8 object.

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

std::strlen(str); // std::strlen expects a const char*

edit: for reference, operators like these are conversion operators

这篇关于什么是运营商超载的位置:String8 ::运营商为const char *()const的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆