我无法使用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());
我一直在阅读这个网站上的其他一些主题,他们提到了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? "].再一次,我认为只有当你进行向下转换时才能进行转换,因为自动进行向上转换.
我哪里错了?
我不熟悉Java中的多线程,也不太了解发生了什么.
从在线教程和讲义中,我知道synchronized必须应用于非null对象的块确保只有一个线程可以执行该代码块.由于数组是Java中的对象,因此可以对其应用同步.此外,如果数组存储对象,我应该能够同步数组的每个元素.
我的程序有几个线程更新了一个数组,因此我创建了一个Long对象数组:
synchronized (grid[arrayIndex]){
grid[arrayIndex] += a.getNumber();
}
Run Code Online (Sandbox Code Playgroud)
这段代码位于run()我扩展的线程类的方法中.数组网格由我的所有线程共享.但是,在一个线程上运行相同的程序时,这不会返回正确的结果.
c++ ×2
arrays ×1
inheritance ×1
java ×1
oop ×1
polymorphism ×1
qdebug ×1
qt ×1
qt5 ×1
wrapper ×1