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

问题描述

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

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

解决方案

这里发生了隐式类型转换

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

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

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

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

时间: 2024-11-03 16:45:38

c++-qt中函数参数类型不同也能实现其功能?的相关文章

eclipse-eclise中如何有函数参数类型提示

问题描述 eclise中如何有函数参数类型提示 hi,麻烦问下像这面这种情况,我选定一个方法后无法得知里面参数类型,鼠标放上面也没什么提示,为什么有的人可以有呢,不知如何设置,求各位帮忙哈,谢谢了 解决方案 首先需要导入相应的jar包,并且add to build path,将鼠标指针放大方法上,才会出现参数类型提示. 如果 导入源码就会提示参数名, 如果导入docs,就会出现文档提示. 解决方案二: 要有相应的代码提示文档支持的

ECMAScript中函数function类型

  这篇文章主要介绍了ECMAScript中函数function类型的相关资料,需要的朋友可以参考下 说起来ECMAScript中上面最有意思,我想那莫过于函数了,有意思的根源,则在于函数实际上是对象.每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定.函数通常是使用函数声明语法定义的,如下例子: 代码如下: function sum(num1,num2) { return num1+nu

Python中实现参数类型检查的简单方法

  这篇文章主要介绍了Python中实现参数类型检查的简单方法,本文讲解使用装饰器实现参数类型检查并给出代码实例,需要的朋友可以参考下 Python是一门弱类型语言,很多从C/C++转过来的朋友起初不是很适应.比如,在声明一个函数时,不能指定参数的类型.用C做类比,那就是所有参数都是void*类型!void类型强制转换在C++中被广泛地认为是个坏习惯,不到万不得已是不会使用的. Python自然没有类型强制转换一说了,因为它是动态语言.首先,所有对象都从Object继承而来,其次,它有强大的内省

Python函数参数类型*、**的区别_python

刚开始学习python,python相对于java确实要简洁易用得多.内存回收类似hotspot的可达性分析, 不可变对象也如同java得Integer类型,with函数类似新版本C++的特性,总体来说理解起来比较轻松.只是函数部分参数的"*"与"**",闭包等问题,着实令人迷糊了一把,弄清概念后写下此文记录下来,也希望本文能够帮助其他初学者. 所以本文是一篇学习笔记,着重于使用的细节和理解上,首先分别介绍了函数各种参数类型在调用和声明时的区别,及其在混用时需要注意

Python中实现参数类型检查的简单方法_python

Python是一门弱类型语言,很多从C/C++转过来的朋友起初不是很适应.比如,在声明一个函数时,不能指定参数的类型.用C做类比,那就是所有参数都是void*类型!void类型强制转换在C++中被广泛地认为是个坏习惯,不到万不得已是不会使用的. Python自然没有类型强制转换一说了,因为它是动态语言.首先,所有对象都从Object继承而来,其次,它有强大的内省,如果调用某个不存在的方法会有异常抛出.大多数情况,我们都不需要做参数类型栓查,除了一些特殊情况.例如,某个函数接受一个str类型,结果

ruby 模块中函数参数错误

问题描述 ruby 模块中函数参数错误 问题如题,谢谢

c#调用c++写的dll中函数,类型对应的问题

问题描述 函数原型DWORDGETXXSTATUS(DWORD*mstatus)参数mstatus:[in/out]*mstatus表示状态值这里的DWORD*与C#中的什么类型对应呢? 解决方案 解决方案二:uintGetXXSTATUS([In,Out]refuintmstatus)解决方案三:dword实质上就是unsignedlong相当于C#的 uint解决方案四:引用1楼shingoscar的回复: uintGetXXSTATUS([In,Out]refuintmstatus) DW

求解释一下:.NET中,参数类型是协变的,方法的返回类型是抗变的。

问题描述 两个概念不太明白,求解释下~ 解决方案 解决方案二:https://zh.wikipedia.org/wiki/%E5%8D%8F%E5%8F%98%E4%B8%8E%E9%80%86%E5%8F%98看看这个你就懂了解决方案三:引用1楼mrjia的回复: https://zh.wikipedia.org/wiki/%E5%8D%8F%E5%8F%98%E4%B8%8E%E9%80%86%E5%8F%98看看这个你就懂了 嗯,里面讲的参数是抗变的,和C#相反.这样说对吧:协变,子类作父

ECMAScript中函数function类型_javascript技巧

说起来ECMAScript中上面最有意思,我想那莫过于函数了,有意思的根源,则在于函数实际上是对象.每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定.函数通常是使用函数声明语法定义的,如下例子: 复制代码 代码如下:  function sum(num1,num2)  {     return num1+num2;  } 这与下面使用函数表达式定义函数的方式几乎相差无几. 复制代码 代码