C++中的auto

在今天的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);

stdoutstdin还是有点熟悉的,详细解释这里不作出,会用就好,毕竟代码的最终要求是实现功能,优化是后期熟练之后的步骤!

cout <<"C++ standard!"<<endl;

需要用的熟练还是要多用的,C++啊!今天没用界面而是console(建立工程的方式不同,实际上之前的工程方式也是支持后台的!偶尔尝个鲜,哈哈)

缘,妙不可言!

发表评论

电子邮件地址不会被公开。 必填项已用*标注