9.2 建構函式的初始化表建構函式有個特殊的初始化方式叫“初始設定式表”(簡稱初始化表)。初始化表位於函數參數表之後,卻在函數體 {} 之前。這說明該表裡的初始化工作發生在函數體內的任何代碼被執行之前。建構函式初始化表的使用規則:u 如果類存在繼承關係,衍生類別必須在其初始化表裡調用基類的建構函式。例如class A{…A(int x); // A的建構函式}; class B : public A{…B(int x, int y);//
8.1.3 當心隱式類型轉換導致重載函數產生二義性樣本8-1-3中,第一個output函數的參數是int類型,第二個output函數的參數是float類型。由於數字本身沒有類型,將數字當作參數時將自動進行類型轉換(稱為隱式類型轉換)。語句output(0.5)將產生編譯錯誤,因為編譯器不知道該將0.5轉換成int還是float類型的參數。隱式類型轉換在很多地方可以簡化程式的書寫,但是也可能留下隱患。# include <iostream.h>void output( int x);
函數是C++/C程式的準系統單元,其重要性不言而喻。函數設計的細微缺點很容易導致該函數被錯用,所以光使函數的功能正確是不夠的。本章重點論述函數的介面設計和內部實現的一些規則。 函數介面的兩個要素是參數和傳回值。C語言中,函數的參數和傳回值的傳遞方式有兩種:值傳遞(pass by value)和指標傳遞(pass by pointer)。C++ 語言中多了引用傳遞(pass by reference)。由於引用傳遞的性質象指標傳遞,而使用方式卻象值傳遞,初學者常常迷惑不解,容易引起混亂,請先閱讀6
第3章 命名規則比較著名的命名規則當推Microsoft公司的“匈牙利”法,該命名規則的主要思想是“在變數和函數名中加入首碼以增進人們對程式的理解”。例如所有的字元變數均以ch為首碼,若是指標變數則追加首碼p。如果一個變數由ppch開頭,則表明它是指向字元指標的指標。 “匈牙利”法最大的缺點是煩瑣,例如int i, j, k; float x, y, z;倘若採用“匈牙利”命名規則,則應當寫成int
基本類型在Poco/Types.h標頭檔中。以下以 GNU C/C++ 和 CLang 為例。不 過要強調的是,POCO 有極好的跨平台性,你能想到的平台,幾乎都可以運行 POCO。1 有符號整型typedef signed char Int8;typedef signed short Int16;typedef signed int
1 What is POCO?POCO 是什嗎?這是我最常被人問到的。POCO 是 POrtable COmponents 的縮寫,官方首頁:POCOProject.org。是一個非常出色的 C++ 庫,相當於 Java 的 Class Library、.NET 的 Framework 和 Apple 的 Cocoa。它與 Boost 是非常不同的,簡單說 Boost 就是相當於 Advanced STL。2 本系列文章所使用的 POCO 版本POCO C++ Library 1.4.3p1 (