![](https://img-blog.csdnimg.cn/img_convert/60759b23d78ab5dbb4a7732bbbb461ac.png)
![](https://img-blog.csdnimg.cn/img_convert/e681f3b6f50ab22abb7dfc2a44ff9695.png)
标准库STL
![](https://img-blog.csdnimg.cn/img_convert/b0c6dfe6baa44a135ed8e80fb5828c7c.png)
Qt VS STL
![](https://img-blog.csdnimg.cn/img_convert/20203909fb8194fc0c780f1397e322d9.png)
![](https://img-blog.csdnimg.cn/img_convert/bdb5adb296aab55b8bb8b198c772f621.png)
Qt中的字符串类——采用Unicode编码,意味着可以直接支持韩文、日文、中文等等。而STL中的string类不支持Unicode编码,只支持ascII码。——使用隐式共享技术来节省内存和不必要的数据拷贝——跨平台使用,不必考虑字符串的平台兼容性
注意:隐式共享技术集成了深拷贝和浅拷贝优点于一身的技术。
![](https://img-blog.csdnimg.cn/img_convert/5d126f70a91e8b767d139f03262c93a1.png)
#include "QCalculatorUI.h"
#include
QCalculatorUI::QCalculatorUI(): QWidget(NULL,Qt::WindowCloseButtonHint) //此处QCalculatorUI就是作为顶层窗口存在的,虽然这个地方继承自QWidget,但是赋值为NULL,相当于它是没有父类的(但是实际上还是有的)。
//将窗口中的最大化和最小化去掉
{
//因为QLineEdit与QCalculatorUI以及QPushButton与QCalculatorUI是组合关系,那么就应该同生死,因此需要在构造函数对其定义。因为此处涉及到在堆上申请内存空间,因此需要
//使用二阶构造
}
bool QCalculatorUI::construct()
{
bool ret = true;
const char* btnText[20] =
{
"7", "8", "9", "+", "(",
"4", "5", "6", "-", ")",
"1", "2", "3", "*", " |