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

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*类型的字符串,从而我们不需要担心内存泄漏等的问题

    点赞 评论
  • lx624909677 2016-03-09 14:07

    这个叫函数的重载,不同的参数传入实现的方式也不同而已

    点赞 评论
  • John_ToDebug 2016-03-10 04:45

    函数的重载,不同的参数传入实现的方式也不同,好好理解下

    点赞 评论

相关推荐 更多相似问题