小编use*_*404的帖子

如何发送QString来调试输出?

我无法使用QDebug在Qt中打印出QString.

以下是一些尝试(无效):

    QDebug(letters.toStdString());
    QDebug(letters.toLatin1());
    QDebug() << letters.toUtf8();
    QDebug() << letters.toWCharArray();
    QDebug() << letters.toStdString();
    QDebug() << letters;
Run Code Online (Sandbox Code Playgroud)

我包括:

#include <QtDebug>
#include <QDebug>
Run Code Online (Sandbox Code Playgroud)

我使用的是Qt 5.2.我还添加CONFIG += console到了我的项目文件中

我的错误是"没有用于调用QDebug :: QDebug()的匹配函数"

我也得到了"QDebug(QByteArray)含糊不清" QDebug(letters.toLatin1());

c++ user-interface qt qdebug qt5

6
推荐指数
1
解决办法
9097
查看次数

施法 - 我为什么要为上传做这件事

我一直在阅读这个网站上的其他一些主题,他们提到了dynamic_cast和static_cast对于向上转换是否安全.

为什么这些甚至需要升级?

例如,如果B类是从A派生的,那么

A * ptr = new B ();
Run Code Online (Sandbox Code Playgroud)

仍然有效,并且行为类似于A类型的对象.(我也来自Java背景,其中不需要转换转发.

我还在这个网站上读到了downcasting不需要dynamic_cast [问题" 什么时候应该使用static_cast,dynamic_cast,const_cast和reinterpret_cast? "].再一次,我认为只有当你进行向下转换时才能进行转换,因为自动进行向上转换.

我哪里错了?

c++ oop polymorphism inheritance

5
推荐指数
1
解决办法
828
查看次数

同步数组中的元素

我不熟悉Java中的多线程,也不太了解发生了什么.

从在线教程和讲义中,我知道synchronized必须应用于非null对象的块确保只有一个线程可以执行该代码块.由于数组是Java中的对象,因此可以对其应用同步.此外,如果数组存储对象,我应该能够同步数组的每个元素.

我的程序有几个线程更新了一个数组,因此我创建了一个Long对象数组:

synchronized (grid[arrayIndex]){
    grid[arrayIndex] += a.getNumber();
}
Run Code Online (Sandbox Code Playgroud)

这段代码位于run()我扩展的线程类的方法中.数组网格由我的所有线程共享.但是,在一个线程上运行相同的程序时,这不会返回正确的结果.

java arrays multithreading wrapper thread-synchronization

2
推荐指数
1
解决办法
5317
查看次数