原创 Qt內部的d指針和q指針手把手教你實現

Qt內部的d指針和q指針 在講Qt的D指針之前讓我們來簡單的解釋一下D指針出現的目的,目的是什麼呢?保證模塊間的二進制兼容。 什麼是二進制兼容呢,簡單說就是如果自己的程序使用了第三方模塊,二進制兼容可以保證在修改了第三方模塊之後,也就是已經

原创 C++中虛函數、虛繼承內存模型

轉載 作者:Holy Chen 鏈接:https://zhuanlan.zhihu.com/p/41309205 來源:知乎 著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。 C++中虛函數、虛繼承的內存模型是一個經典

原创 c++11新特性實戰(二):智能指針

c++11新特性實戰(二):智能指針 c++11添加了新的智能指針,unique_ptr、shared_ptr和weak_ptr,同時也將auto_ptr置爲廢棄(deprecated)。 但是在實際的使用過程中,很多人都會有這樣的問題:

原创 windows下使用mingw和msvc靜態編譯Qt5.15.xx

windows下使用mingw和msvc靜態編譯Qt5.15.xx 下載並安裝相關依賴軟件 Python version 2.7 https://www.python.org/downloads/ (python2.7.5及以上,py

原创 Qt moc元對象編譯器的原理和場景(反射)

Qt Meta-Object Compiler (moc) 元對象編譯器,能夠實現運行時類型識別。可以用在需要用到反射機制的情況下,qml使用c++的類和方法就是使用了這個特性,通過Q_PROPERTY在類內註冊屬性; 使用Qt的元對象系統

原创 c++結構體內存對齊

c++結構體內存對齊 基本概念: 各成員變量存放的起始地址相對於結構的起始地址的偏移量必須爲該變量的類型所佔用的字節數的倍數, 各成員變量在存放的時候根據在結構中出現的順序依次申請空間 同時按照上面的對齊方式調整位置。 空缺的字節自動填充,

原创 一個簡單的查找算法題

一個查找目標值的算法實現 設計一個查找算法search(int searchValue, int arr[10]),從一個整型數組中查找到需要的int類型目標值? 題意理解:case給的參數是一個10個int大小的數組,我們考慮大數據更加通

原创 c++11 新特性實戰 (一):多線程操作

c++11 新特性實戰 (一) c++11多線程操作 線程 thread int main() { thread t1(Test1); t1.join(); thread t2(Test2); t2.

原创 抽象工廠模式(c++實現)

抽象工廠模式 目錄抽象工廠模式模式定義模式動機UML類圖源碼實現優點缺點感悟 模式定義 抽象工廠模式(Abstract Factory),提供一個創建一系列相關或相互依賴對象的接口,而無需指定他們具體的類。 模式動機 通常是在運行時刻在創

原创 中介者模式(c++實現)

中介者模式 目錄中介者模式模式定義模式動機UML類圖源碼實現優點缺點 模式定義 中介者模式(Mediator),用一箇中介對象來封裝一系列的對象交互。中介者使各對象不需要顯示地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的交互。

原创 迭代器模式(c++實現)

迭代器模式 目錄迭代器模式模式定義模式動機UML類圖源碼實現優點缺點 模式定義 迭代器模式(Iterator),提供一種方法順序訪問一個聚合對象中各個元素,而又不暴露該對象的內部表示。 模式動機 一個聚集對象,而且不管這些對象是什麼都需要

原创 享元模式(c++實現)

享元模式 目錄享元模式模式定義模式動機UML類圖源碼實現優點缺點 模式定義 享元模式(Flyweight),運用共享技術有效的支持大量細粒度的對象。 模式動機 如果一個應用使用了大量的對象,而大量的這些對象造成了很大的存儲開銷時就應該考慮

原创 代理模式(c++實現)

代理模式 目錄代理模式模式定義模式動機UML類圖源碼實現優點缺點 模式定義 代理模式(Proxy),爲其他對象提供一種代理以控制對這個對象的訪問。 模式動機 遠程代理,也就是爲一個對象在不同的地址空間提供局部代表。這樣可以隱藏一個對象存在

原创 命令模式(c++實現)

命令模式 目錄命令模式模式定義模式動機UML類圖源碼實現優點缺點 模式定義 命令模式(Command),將一個請求封裝爲一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日誌,以及支持可撤銷的操作。 模式動機 敏捷開發

原创 建造者模式(c++實現)

建造者模式 目錄建造者模式模式定義模式動機UML類圖源碼實現優點缺點 模式定義 建造者模式(Builder),將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 模式動機 如果我們用了建造者模式,那麼用戶就只需指定