程序运行后,总是崩溃在这个地方:inline QDebug &operator<<(const QString & t) 我应该用什么办法找出是哪个QString出了问题呢?QString是自释放的,为什么还会有这种问题呢?- --------------------------------------------------------------------------------------- 理论:实际原因找了半天,是因为包含QString这个对象被delete了两次,…
在qtcentre中看到有网友问这样一个问题: Why this doesn't work? qDebug() << "Test" << std::endl; 第一反应:这两个东西本来就不能这样搭配使用啊. 第二反应:额,如何解释这个问题呢?还真不知道 第三反应:... std::cout<<std::endl; 在Qt中用了二三年C++了,还真没想过C++中的这么一个简单的语句是怎么工作的: 只知道std::endl等价于换行+flush 再一想,…
条款17 在operator=中检查给自己赋值的情况 1 2 3 class  X { ... }; X a; a = a;  // a 赋值给自己 >赋值给自己make no sense, 但却是合法的; 重要的是, 赋值给自己的情况可以以隐蔽的形式出现: a = b; 如果b是a的另一个名字(初始化为a的引用), 那也是对自己赋值; 这是一个别名的例子: 同一个对象有两个以上的名字; 别名可以以任意形式的伪装出现, 在写函数时一定要考虑到; Note 赋值运算符中要特别注意可能出现别名的情况…
Python第十一天    异常处理  glob模块和shlex模块    打开外部程序和subprocess模块  subprocess类  Pipe管道  operator模块   sorted函数    os模块   hashlib模块  platform模块  csv模块 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Python第二天  变量  运算符与表达式  input()与raw_input()区别  字符编码  python转义符  字…
当QList<T>容器中的数据用qDebug() 打印时 ,假如 T 是内置类型(int  float ...)与 打印一个字符串使用完全一样,假如T 是一个CustomerClass 那么就得重载该类的<< 运算符.有这样一个 LogLat 类定义如下 class LogLat { ///[1]不可以将operator<< 定义为成员函数,应该将其声明为友元函数 friend QDebug& operator<<(QDebug &debug…
采用Unicode编码,所以一个QChar占用两个字节使用隐式共享技术来节省内存和减少不必要的数据拷贝跨平台使用,不用考虑字符串的平台兼容性QString直接支持字符串和数字之间的相互转换QString直接支持字符串之间的大小比较(按照字典序)QString直接支持不同编码下的字符串转换QString直接支持std::string和std::wstring之间的相互转换QString直接支持正则表达式的使用 QString对象构造: QChar qch[]={'a','b','c','d','e…
0.说明 区别于QByteArray,QString串是Unicode串,每个元素都是QChar 16-bit UTF-16编码(Unicode) :而QByteArray是8-bit串. 0.1.初始化 ①const char * const char *以'\0'为串终止符. QString str = "Hello"; ②QChar [ ] static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 }; QStri…
写在前面: 关于C++的赋值运算符重载函数(operator=),网络以及各种教材上都有很多介绍,但可惜的是,内容大多雷同且不全面.面对这一局面,在下在整合各种资源及融入个人理解的基础上,整理出一篇较为全面/详尽的文章,以飨读者. 正文: Ⅰ.举例 例1 #include<iostream> #include<string> using namespace std; class MyStr { private: char *name; int id; public: MyStr()…
1.开发环境:安装Qt5.3.2(离线安装包安装):VS版本为:2010 SP1Rel:源代码默认保存格式为GB2312. 2.输出乱码的代码 #include <QtCore/QCoreApplication> #include <QRegularExpression> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QString namePattern("人员状态表-(\\D+)-…
注意:本文翻译自  http://developer.qt.nokia.com   中的  UsingQStringEffectively   ,中文译文见  简体中文版 ,如果你对翻译wiki感兴趣,请参考Wiki中文帮助 本文解释了QString相关的各个类的用途. QLatin1String:避免操作符 "==" 中隐含的 malloc 从C字符串创建一个QString可能会涉及到malloc.举例来说,下面的代码可能会有一个隐式malloc调用的代价. if (fruit ==…