在今天的Qt编程里面,偶然遇见了一波auto,嗯,也不算是偶然,Qt本来就是依靠C++的强大类库实现相应功能的,运用层面当然也必须非常熟悉C++的知识,auto作为C++的一项重要内容,迟早是要遇见的!
const auto serialPortInfos = QSerialPortInfo::availablePorts();
这是我在此项工程文件里遇见的第一句,实际上这句代码的标准写法是如下的形式
const QSerialPortInfo serialPortInfos = QSerialPortInfo::availablePorts();
QSerialPortInfo serialPortInfos = QSerialPortInfo::availablePorts();
都可以,但是为何要使用auto?嗯,我个人觉得是方便,毕竟可以让编译器识别变量类型,自己又何必去操作呢?
auto For_just_test = "N/A";
out <<For_just_test<<endl;
不需要定义定义变量类型,根据变量值自动识别,这里就需要注意一点,auto定义的变量必须要有初始值!
for(const auto &serialPortInfo : serialPortInfos)
{
description = serialPortInfo.description();
manufacturer = serialPortInfo.manufacturer();
serialNumber = serialPortInfo.serialNumber();
...
...
}
const定义不变常量,这里的访问还有一个迭代的问题,此前的是foreach,这里用的是for循环实现,方式不同,但是可以实现相同的功能!
for(const auto &serialPortInfo : serialPortInfos)
for(const QSerialPortInfo &serialPortInfo : serialPortInfos)
今天的尝试还有一个cmd模式的打印字符问题,实际上在C++里面使用cout打印输出内容需要引入头文件
#include <iostream.h>
Qt里面能不能使用呢?实际上用的比较多的是debug,当然也需要引入头文件,引入之后用法和cout基本是相同的
#include <QTextStream>
QTextStream out(stdout);
在Qt文件里,引入上述头文件并进行上述定义就可以使用out作为打印函数使用了,具体为何是一个流问题
out << "Total number of ports available: " << serialPortInfos.count() << endl;
模式还是和C++里面的cout及其相似的!如果你想使用C++的打印函数cout,那么只需要引入其自自带的头函数即可,Qt内部也是兼容的
#include <iostream>
using namespace std;
这里的名称空间啥是必要的,保证std的输入输出可供使用,其实仔细回味一下
QTextStream out(stdout);
stdout和stdin还是有点熟悉的,详细解释这里不作出,会用就好,毕竟代码的最终要求是实现功能,优化是后期熟练之后的步骤!
cout <<"C++ standard!"<<endl;
需要用的熟练还是要多用的,C++啊!今天没用界面而是console(建立工程的方式不同,实际上之前的工程方式也是支持后台的!偶尔尝个鲜,哈哈)
缘,妙不可言!