1.虚函数的继承与派生;2.多文件静态对象的定义顺序,3模板注意,4mysql二、十六进制, 4颜色名称,5QSvgRenderer真实rect和viewboxrect转换
来源:互联网 发布:java面向对象特征 编辑:程序博客网 时间:2024/05/02 01:59
1.对于析构函数,一定要以virtual ~A();来标示所有的子类,父类的析构函数
2.对于静态初始化,由于对函数名命名有严格规定,也就是说若是A。cpp、b。cpp的静态函数,会依靠pro里的cpp的先后顺序来实现
2.2window下linux下对,声明的顺序有不同的标准,不可相同对待
2.3在A文件里定义静态对象a,B文件静态调用a时,会出现定义先后顺序导致的软件启动失败,尤其在linux、window下不同
2.3.2解决办法,可以在A文件定义对象时,定义指针(空) a,B文件静态调用a时,判断对指针赋值,及时析构就好
A.h
class QstandarditemmodelManager {
QstandarditemmodelManager();
~QstandarditemmodelManager();
QStandardItemModel* mCreator();
private:
QStandardItemModel *p;
};
A.cpp
QstandarditemmodelManager::QstandarditemmodelManager()
{
p = 0;
}
QstandarditemmodelManager::~QstandarditemmodelManager()
{
if(p) delete p;
}
QStandardItemModel* QstandarditemmodelManager::mCreator()
{
if(p == 0)
p = new QStandardItemModel;
return p;
}
3.模板类,函数的定义是不能在cpp里执行,只能在。h里面定义
4. SELECT hex(0x10221 & bin(1111)) -》10021
基本没用,&的话,2进制最明显
5.rgb(x,x,x), rgba(x,x,x,x), #xxxxxx, shv(x,x,x)【样式表能获取,QColor无法识别】
5.5QSvgRenderer真实rect和viewboxrect转换
#include "mainwindow.h"
#include <QApplication>
#include "form.h"
#include <QSvgRenderer>
#include <QtWidgets>
#include <QtDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QSvgRenderer render(QString(":/default.svg"));
QRectF rectp(0, 0, 400, 400);
QRectF rect2(100, 100, 200, 200);
QRectF rectd = QRect(QPoint(0,0), render.defaultSize());
QPixmap w(rectp.size().toSize());
QRectF rect1 = QRectF(-rect2.x()*rectd.width()/rect2.width(),
-rect2.y()*rectd.height()/rect2.height(),
(rectd.width()*rectp.width())/rect2.width(),
(rectd.height()*rectp.height())/rect2.height()
);
qDebug() << rect1;
render.setViewBox(rect1);
QPainter p(&w);
render.render(&p);
QLabel l;
l.setPixmap(w);
l.show();
return a.exec();
}
//default: 0,0,wd,hd: 0, 0, 400, 400
//x1, y1, w1, h1: -200,-200, 800,800
//QPainter: 0,0,wp,hp: 0,0,200,200
//x2, y2, w2, h2: 50, 50, 100, 100
//-x1*w2/wd= x2 x1 = -x2*wd/w2
//-y1*h2/hd= y2 y1 = -y2*hd/h2
//wd/w1*wp = w2 w1 = (wd*wp)/w2
//hd/h1*hp = h2 h1 = (hd*hp)/h2
- 1.虚函数的继承与派生;2.多文件静态对象的定义顺序,3模板注意,4mysql二、十六进制, 4颜色名称,5QSvgRenderer真实rect和viewboxrect转换
- C++ Pirmer : 第十五章 : 面向对象程序设计之基类和派生的定义、类型转换与继承与虚函数
- 【C++继承与派生之二】有子对象的派生类的构造函数
- 继承与派生,多继承,函数重载,构造函数调用顺序 静态多态和动态多态
- 二十六、继承(三) 转换与继承、派生类到基类的转换、基类到派生类的转换
- 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换
- 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换
- 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换
- 十六进制与RGB颜色值的相互转换 , 判断一个素数 , 内联函数, 面向对象
- 友元关系与继承以及基类派生类定义构造函数时应该注意的事项
- C#十六进制颜色与Color对象的互相转换
- C# 十六进制颜色与Color对象的互相转换
- 十六进制颜色与Color对象的互相转换
- C#十六进制颜色与Color对象的互相转换
- C#十六进制颜色与Color对象的互相转换
- 继承与派生4:派生类中对基类成员的重定义
- c++学习笔记5,多重继承中派生类的构造函数与析构函数的调用顺序(二)
- 顺序栈的定义以及应用:十进制与八进制的转换、十进制与十六进制的转换
- CABasicAnimation 使用
- APK 破解
- SVM再次总结 - 5 - SMO
- Can't use Subversion command line client: svn.Errors found while svn working copies detection.
- 几个有关图的常用术语
- 1.虚函数的继承与派生;2.多文件静态对象的定义顺序,3模板注意,4mysql二、十六进制, 4颜色名称,5QSvgRenderer真实rect和viewboxrect转换
- spring MVC mybatis ssm 框架 Jeeplus智能快速开发平台
- 错误总结
- Java反射小结
- 推荐几款实用的Android Studio 插件
- 4.JVM之安全管理器
- js判断var 是否是undefined的
- 数据库索引结构---T树的原理
- 开源代码网站