原创 Inside The C++ Object Model(Note):Member Initialization List

 爲了讓程序順利通過編譯,在下列四種情況中你必須使用成員初始化列表:1.當初始化一個reference member時;2.當初始化一個const member時;3.當調用一個base class 的constructor,而它擁有一組

原创 /etc/profile和 . profile 文件

兩個重要的profile文件在UNIX/Xenix系統中有兩個對用戶而言必不可少的文件——etc目錄下的profile文件和用戶主目錄($HOME)下的.profile文件。前者是系統文件,對系統下全體用戶起作用,後者是用戶自己的"私人"

原创 more effective c++:the difference between pointer and reference

首先,沒有所謂的 nul reference 但是有 null pointers.一個reference必須總是代表某個對象。 pointers可以被重新賦值,指向另一個對象,reference卻總是指向(代表)

原创 Linux文件系統ACL介紹

簡介ACL是訪問控制列表(Access Control Lists)的縮寫,對於Unix系統,ACL是標準Unix文件屬性(r,w)的附加擴展。ACL給予用戶和管理員更好控制文件讀寫和權限賦予的能力,商業Unix和NTFS以及Freebs

原创 Inside the C++ Object Model:note(2)

構造函數語義學 主題:論述編譯器對於“對象構造過程”的干涉,以及對於“程序形式”和“程序效率”上的衝擊一.默認構造函數的建構操作和拷貝構造函數的建構操作ARM:默認構造函數和拷貝構造函數在必要時,才被編譯器產生出來。說明:“必要”意指當類

原创 C++中extern “C”含義深層探索

1.引言   C++語言的創建初衷是“a better C”,但是這並不意味着C++中類似C語言的全局變量和函數所採用的編譯和連接方式與C語言完全相同。作爲一種欲與C兼容的語言,C++保留了一部分過程式語言的特點(被世人稱爲“不徹

原创 Inside The C++ Object Model :note (1)

1.C++ 在佈局以及存取時間上的主要的額外開銷是由virtual引起,包括:virtual function機制:用以支持一個小效率的執行期綁定                                              

原创 LINUX下的C編程實戰之gcc/gdb/make

      Linux下的C編程實戰之gcc/gdb/make 1 :文本編輯器 2:Gcc 編譯器的使用 3:GDB debug調試器 4:make     一:文本編輯器 在Linux平臺下,可用任意一個文本編輯工具編輯

原创 TX GAME筆試

關於宏定義:我們最好在宏定義中把每個參數都用括號括起來。 同樣,整個結果表達式也應該用括號括起來,以防止當宏用於一個更大一些的表達式中可能出現的問題。   1 #define SQR(X)  X*X int a=10 a/=SQR(1+2

原创 Inside The C++ Object Model(Note):sizeof in an object

Data語義學:在這一章中,類得數據成員以及層次體系是中心議題數據成員一般表示這個類在程序執行時的某種狀態,非靜態數據成員放置的是“個別”class object感興趣的數據靜態數據成員放置整個class感興趣的數據 下面以下圖說明這個空

原创 腳本與環境變量設置

遇到問題:在一個腳本文件中定義一個了變量,然後export變量,腳本退出後,設置的環境變量失效。分析問題:執行一個腳本時,會先開啓一個子shell環境(不知道執行其它程序是不是這樣),然後將父shell中的所有系統環境變量複製過來,這個腳

原创 動態鏈接庫*.so的編譯與使用

動態鏈接庫*.so的編譯與使用 動態庫*.so在linux下用c和c++編程時經常會碰到,最近在網站找了幾篇文章介紹動態庫的編譯和鏈接,

原创 memberwise and bitwise in C++

Default Memberwist Initialization: During initialize an object, base class's constructor(s) is(are) called, data member

原创 diff和patch使用指南

diff和patch是一對工具,在數學上來說,diff是對兩個集合的差運算,patch是對兩個集合的和運算。diff比較兩個文件或文件集合的差異,並記錄下來,生成一個diff文件,這也是我們常說的patch文件,即補丁文件。patch能將

原创 SHELL:awk,sed,常用文本處理命令

  awk: awk ‘print{$1,$2}’ grade.txt             打印單獨記錄 awk ‘BEGIN print{“N