c++的 operator 允許定義新的操作符。
乙個種是用於全域性的, 一種是屬於類的。
對應類的操作符,切記是對類的物件起作用,而非指標 -
比如 class cwinimpl
void paint() {}
class cwindow
public:
cwindow()
m_hwnd = createwindow( ...);
m_impl = new cwinimpl;
operator hwnd() const
cwinimpl* operator->()
private:
hwnd m-hwnd;
cwinimpl *m_impl;
};void test()
cwindow * win = new cwindow();
hwnd h = *win; //ok
//hwnd h = win; //error
win->paint() //error
(*win)->paint(); //ok
切記切記, 跟驅動打交道久了,c++放下多年了,今天給這個鬱悶了一把。
volatile作用及應用舉例
保證執行緒可見性 不能代替synchronized 保證原子性 禁止指令重排序 細節與cpu有關雙重判斷單例 要不要加volatile 需要 一定需要 防止指令重排 synchronized 不能防止重排序 public class singletonclass return instance pr...
linux下yum命令作用及應用
yum是什麼?linux命令 一.yum是什麼 yum yellow dog updater,modified 主要功能是更方便的新增 刪除 更新rpm包.它能自動解決包的倚賴性問題.它能便於管理大量系統的更新問題 注 為什麼要使用yum而不用apt,最簡單的原因,fedora自帶 二.yum特點 ...
static修飾符的作用及應用
資料共享 成員變數 例項變數 和靜態變數 類變數 的區別 兩個變數的生命週期不同 成員變數隨物件的建立而存在,隨物件被 而釋放 靜態變數隨類的載入而存在,隨類的消失而消失 呼叫方式不同 成員變數只能被物件呼叫 靜態變數還可以被類名呼叫 資料儲存位置不同 成員變數 堆記憶體的物件中,也叫物件的特有資料...