原创 Effective C++筆記⑦

定製new和delete   條款49:瞭解new-handler的行爲 當operator new拋出異常以反映一個未獲滿足的內存需求之前,它會先調用一個可客戶指定的錯誤處理函數,一個所謂的new-handler。爲了指定這個“用以處理

原创 Effective C++筆記⑥

繼承和麪向對象設計 面向對象編程(OOP)幾乎已經風靡了兩個年代了,所以關於繼承、派生、virtual函數等等。儘管如此,C++的OOP有可能和你原本習慣的OOP稍有不同:“繼承”可以是單一繼承或多重繼承,每一個繼承連接(link)可以是

原创 關鍵字①:const

成員函數前後添加const的區別   首先看以下例子: class Rect{ public: Rect(); ~Rect(); size_t length() const; //在函數後添加const

原创 關鍵字②:typename

typename   typename作爲關鍵字有以下的用法: 作爲模板元編程使用 template <typename T> template <class T> void foo(const T& t) { /

原创 Docker學習①

使用Docker鏡像   獲取鏡像 鏡像是獲取容器的前提,官網的Docker Hub網站已經提供了數十萬個鏡像供大家開放下載。最好使用國內的鏡像加速網站,本人使用的是以下網易的鏡像加速: #網易 http://hub-mirror.c.

原创 Effective C++筆記④

設計與聲明 最重要、適合任何接口設計的一個準則作爲開端:“讓接口容易被正確使用,不容易被誤用”。 條款18:讓接口容易被正確使用,不易被誤用 要開發一個接口,必須考慮可能會產生的錯誤。假設你爲一個用來表現日期的class設計構造函數:

原创 關鍵字③:類型轉換

隱式轉換 1)算數轉換:在混合類型的算術表達式中, 最寬的數據類型成爲目標轉換類型。 int int_type = 3; double double_type = 4.0012; int_type + double_type =

原创 Docker學習②

操作Docker容器 容器是Docker的另一個核心概念。簡單來說,容器是鏡像的一個運行實例。不同的是,鏡像是靜態的只讀文件,而容器帶有運行時需要的可寫文件層,同時,容器中的應用進程處於運行狀態。 本章將具體介紹圍繞容器的重要操作,包括創

原创 C++設計模式---建造者模式

建造者模式 含義:        將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。用具體的示例來說,就是裝配一部手機,需要先放主板,再放屏幕,再放電池,最後組裝外殼形成手機;而且每次發佈新產品手機,更換更大的屏幕

原创 Docker學習④

端口映射與容器互聯 Docker除了通過網絡訪問外,還提供了兩個很方便的功能來滿足服務訪問的基本需求: 允許映射容器內應用的服務端口到本地宿主主機; 互聯機制實現多個容器間通過容器名來快速訪問;   端口映射實現容器訪問   1、從外部訪

原创 Docker學習③

Docker數據管理 生產環境中使用Docker,往往需要對數據進行持久化,或者需要在多個容器之間進行數據共享,這必然涉及容器的數據管理操作。 容器中的管理數據主要有兩種方式: 數據卷:容器內數據直接映射到本地主機環境; 數據卷容器:使用

原创 C++設計模式---概覽

一、設計模式的分類 總體來說設計模式可以分爲三大類: 創建型模式: 工廠方法模式; 抽象工廠模式; 單例模式; 建造者模式; 原型模式; 結構型模式: 適配器模式; 裝飾器模式; 代理模式; 外觀模式; 橋接模式; 組合模式; 享元

原创 基本UDP套接字編程

概述 UDP是無連接不可靠的數據報協議,非常不同於TCP提供的面向連接的可靠字節流。通常有一些常用的應用程序使用UDP: DNS(域名系統) NFS(網絡文件系統) SNMP(簡單網絡管理協議) 如下給出了典型的UDP客戶/服務器程序的函

原创 Docker學習⑤

使用Dockerfile創建鏡像 Dockerfile是一個文本格式的配置文件,用戶可以使用Dockerfile來快速創建自定義的鏡像。   基本結構 Dockerfile由一行行命令語句組成,並且支持以#開頭的註釋行。 一般而言,Doc

原创 名字與地址轉換

概述 常常地,我們都會使用數值地址來表示主機,用數值端口號來標識服務器。然而出於許多理由,我們應該使用名字而不是數值:名字比較容易記住;數值地址可以變動而名字保持不變;隨着IPv6上轉移,數值地址變得相當長,手工鍵入數值地址更易出錯。本節