原创 Qt 使用第三方庫

簡述 在 Qt 中經常會用到第三方庫,例如:FFmpeg、OpenCV 等。第三方庫的使用比較簡單,只需要一些基本的配置就可以搞定,一起來看看吧! 簡述第三方庫源代碼庫文件目標目錄 第三方庫 假設你需要依賴一個跨平臺

原创 unique_ptr的使用和陷阱

unique_ptr的使用 分配內存 與shared_ptr不同,unique_ptr沒有定義類似make_shared的操作,因此只可以使用new來分配內存,並且由於unique_ptr不可拷貝和賦值,初始化unique_ptr必

原创 C++中的強制類型轉換

C++中有五種強制類型轉換 static_castconst_castreinterpret_castdynamic_cast舊式(C風格)強制類型裝換 static_cast 只要不包含底層const,都可以使用 /* s

原创 數組指針強制轉換成結構體指針

這樣轉換編譯器其實什麼也不做。 只是從語法上來說類型改變而已,用新的類型的方式來解釋原來內存中的值。 // -------------------------------------------------- 這樣做是讓結構體按照自

原创 動態內存與智能指針

轉自:http://m.blog.csdn.net/River_Lethe/article/details/78733914 程序中內存分配有以下五種: 棧區 存放局部變量、函數參數等,由編譯器自動分配,變量離開作用域後自動收回內

原创 Qt .pro文件詳解

1. TEMPLATE變量TEMPLATE描述了爲建立目標文件而採用何種模板,即生成何種形式的Makefile文件。Qmake工具定義了5種模板:1. 應用程序App,爲建立一個Qt應用程序創建Makefile文件;2. 庫lib,爲建立

原创 shared_ptr的使用和陷阱

shared_ptr的使用 分配內存 make_shared//make_shared<int>分配一塊int類型大小的內存,並值初始化爲100 //返回值是shared_ptr類型,因此可以直接賦值給sp shared_ptr<

原创 QGraphicsView 的使用(滾輪縮放)

1. 繼承QGraphicsView;class MyGraphicsView : public QGraphicsView2. 重寫構造函數MyGraphicsView(QGraphicsScene *scene, QWidget *p

原创 深拷貝 賦值

// 實現克隆Clone // let obj = new window[this._type]; // let obj = DObject.deepCopy(this);

原创 C++ 與 JS 移植

1.C++的int,float,string 可以被引用,而js 的不行;      如果用到函數中的引用參數,js只能把引用的基本類型返回,再賦值;    2. js的 switch 可以case 字符串,而C++ 不行;   3. C

原创 js for循環中的回調同步問題

回調函數在for循環中,回調的順序就會不確定,不按順序。以下方法能使其同步執行: 一、使用 async 和 await const delay = ms => new Promise(resolve => setTimeout(reso

原创 深入理解js立即執行函數

看過jQuery源碼的人應該知道,jQuery開篇用的就是立即執行函數。立即執行函數常用於第三方庫,好處在於隔離作用域,任何一個第三方庫都會存在大量的變量和函數,爲了避免變量污染(命名衝突),開發者們想到的解決辦法就是使用立即執行函數。

原创 JS 深拷貝與淺拷貝

一、數據類型 數據分爲基本數據類型(String, Number, Boolean, Null, Undefined,Symbol)和對象數據類型。 基本數據類型的特點:直接存儲在棧(stack)中的數據 引用數據類型的特點:存儲的是該對

原创 js基礎類型的擴展 string 和 String

擴展基礎類型的函數 interface String { toBool: () => boolean; } String.prototype.toBool = function (): boolean { return

原创 分析 JavaScript 的數據類型與變量

原文鏈接:https://segmentfault.com/a/1190000017016407 這篇文章,來聊聊 JS 中的數據類型與變量。這是在學習 JS 時最基礎的一類問題,但卻很重要。希望我的分享有幫助到你。 文章開頭,我先提幾個