2 jdbdh jdbdh 于 2016.03.09 14:15 提问

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

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

3个回答

qq423399099
qq423399099   Ds   Rxr 2016.03.09 15: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
lx624909677   Ds   Rxr 2016.03.09 22:07

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

John_ToStr
John_ToStr   Rxr 2016.03.10 12:45

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!