自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 CMAKE 配置 QT+VS,生成插件出现LNK2001问题

1.在网上找了巨久资料,大多数矛头都是指向没有生成moc文件所致。但是查看路径发现moc文件好端端的杵在那个地方。 2.难道是访问moc文件的路径不对,遇是把路径改为绝对路径,没卵用。 3.有的说是因为添加了Q_OBJECT的问题,注释掉,果然没这个问题了,可是我要用信号槽呀喂! 4.代码都是参照Qt assistant 里面的plugin sample写的。不应该有问题。于是怀疑是CMak...

2019-07-10 16:32:14 466 2

原创 条款9:绝不在构造函数和析构过程中调用virtual 函数

    假设有这样一个class,它记录了交易的买进和卖出情况: class Transaction { public: Transaction(); virtual void logTransaction() const = 0; //一份因交易内容不同 ...

2019-01-21 21:22:47 115

原创 条款8:别让异常逃离析构函数

C++不反对但也不鼓励在析构函数中吐出异常。   假设有一个负责连接数据库资源的class: class DBConnection { public: ... static DBConnection create(); void close(); }; 然后有一个负责DBConnection资源管理的class: class DBConn { public: ... ~DBCo...

2019-01-15 09:12:51 169

原创 条款7:为多态基类声明virtual析构函数

  假设,有一个父类: class TimeKeeper{ public: TimeKeeper(); ~TimeKeeper(); ... };   然后假设有很多子类: class AutomicClock : public TimeKeeper{...}; class WaterClock : public TimeKeeper{...}; class WristWatch :...

2019-01-12 18:08:25 160

原创 条款6:若不想使用编译器自动生成的函数,就该明确拒绝

1.当希望编译在调用copy 和 copy assignment 函数报错的时候,(比如代码逻辑中该class完全不应该也不能被copy和copy assignment)。需要想办法既不自己完成这两个函数,也不让编译器生成的函数被调用。     2.可以尝试将这个两个函数声明为private函数,但是不够安全。因为member和friend函数依然可以调用这两个函数。   3.所以在声明...

2019-01-12 18:06:40 161

原创 条款5 了解C++默默编写并调用哪些函数

1.empty class 在C++处理过后就不再是一个empty class.编译器会为它声明一个copy 构造函数,一个copy assignment操作符,一个析构函数。此外你如果你没有声明任何构造函数,编译器也会为你声明一个default构造函数。所有这些函数都是Public且inline。 所以: class Empty{}; 就如同: class Empty{ public: ...

2019-01-04 20:42:49 154

原创 条款4 确认对象在被使用前已被初始化

1。最佳的处理方式是:永远在使用对象之前先将它初始化。对于无任何成员的内置类型,你必须手动完成此事。至于内置类型以外的任何其他东西,初始化的责任落在构造函数身上:确保每一个构造函数都将对象的每一个成员初始化。但是别混淆了赋值喝初始化。   2.构造函数的一个较佳写法是,使用所谓的member initialization list 替换赋值动作。这样效率较高。因为处置列中针对各个成员变量而设的...

2019-01-03 22:33:40 98

原创 条款3,尽量使用const

条款03:尽可能使用 const   const允许你指定一个语义约束,也就是指定一个“不该被改动”的对象。 const如果出现在星号左边,表示被指物是常量,如果出现在星号右边,表示指针自身是常量:如果出现在星号两边,表示被指物和指针都是常量。 如果被指物是常量,有些程序会将关键字const写在类型之前,有些人会把它写在类型之后,星号之前。两种写法意义相同: void f1(const ...

2018-12-27 10:14:47 161

原创 条款1&2

      条款1:视C++为一个语言联邦 最简单的理解C++语言是将它 视为一个由相关语言组成的联邦而非单一语言。 C++并不是一个带有一组守则的一体语言,它是从四个次语言组成的联邦政府,每个此语言都由自己的规则。分别是C,Object-Oriented C++,Template C++,STL。 为了能高效率的编程,所以在每次切换语言的时候,都可能会遵循它们自己的规则。 C++高...

2018-12-17 21:26:38 101

原创 第12章 输入与输出

1.Qt通过QIODevice为输入输出提供了极佳的支持。QIODevice是一个封装能够读写字节块“设备”的强有力的提取器。   2.除了设备类,Qt还提供了两个更高级别的流类,使我们可以从任意的输入输出设备读写数据(QDataStream用来读写二进制的数据),(QTextStream用来读写文本数据) 3.Qt提供了QDir,QFileInfo类,它们分别用于处理目录地址和提供内部文件...

2018-08-30 22:01:21 125

原创 第七章 事件处理器

  1.一般情况下,在使用窗口部件得时候,信号是十分有用的,而在实现窗口部件得时候事件则是十分有用的,所以不要把两者搞混了。   2.Qt处理的时间类型有一百多种,其中每一种都可以通过一个枚举值进行识别。   3.通过QKeyEvent::modifiers()可以检测修饰键(Ctrl,Shift,Alt等):   if(event->modifiers() & Qt:...

2018-08-29 22:17:13 168

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除