千霜 2016-03-09 06:15 采纳率: 100%
浏览 1735
已采纳

qt中函数参数类型不同也能实现其功能?

图片说明
图中data为QByteArray类型,而函数原型为const char类型,broadcast为枚举类型,而函数原型为hostaddress类型。为什么不同也能够实现其功能呢?图片说明

  • 写回答

3条回答 默认 最新

  • 小灸舞 2016-03-09 07:44
    关注

    这里发生了隐式类型转换

     QString raw_string = "haasd123ha";
     QByteArray byte_instrument = raw_string.toLocal8Bit();
     const char *char_instrument = byte_instrument;  //打印出来发现一样
    

    QByteArray自动的保证“最后一个字节之后的那个位”是'\0'。这就使得QByteArray可以很容易的转换成const char *
    调用QByteArray类上面的data()或者constData()函数,仅仅是获得QByteArray内部的一个const char*类型的字符串,从而我们不需要担心内存泄漏等的问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败