Search

10/01/2006

codefreak

http://fsfoundry.org/codefreak/

  • C++ Terminology - 1. Variety of Types

    Template Class
    也是 user-defined type 的 subset. 為 class template 的 instance
    (具現), e.g.:
    typedef list IntList;


    POD

    Acronym for Plain Old Data. User-defined C-style structure. 為
    user-defined type 的 subset, 需符合下列條件:
    1. 沒有 user-defined constructor, destructor 以及 assignment operator
    2. 沒有 base class type, 換句話說非 derive 自 user-defined type
    3. 如果有 data member, 其所有 data member 必須為 fundamental type 或 POD
    下兩例皆為 POD:

    class SomePodType
    {
    public:
    unsigned int data0;
    };
    struct AnotherPodTypeWithDataMember
    {
    SomePodType data1;
    char data2;
    };


    User-defined Type

    Aka. class type. 使用者自訂型別, 也稱為類或類別. 泛指所有的 struct 與
    class, 包含 C++ Standard Library 定義的型別, e.g.:

    class SomeClass;
    struct SomeStruct;
    template class basic_string;

    對 C++ 來說, 在定義 user-defined type 時, class 與 struct 幾乎是沒有差別且
    能互相替換 (interchangable). 唯一的差別是預設 (默認) 的存取權限:

    class DerivedClass : /*private*/ BaseClass
    {
    /*private:*/
    int data;
    };
    struct DerivedStruct : /*public*/ BaseStruct
    {
    /*public:*/
    int data;
    };

  • C++ Terminology - 2. Instance and Instanciation
  • Misconception of C++ Efficiency
  • Is your Singleton Broken?
  • Pointer to What?
    foo const * b;
    定義一個名為 b 的 (非常數) 指標, 這個指標指向一個常數 (const) foo.
    foo * const c;
    定義一個名為 c 的常數 (const) 指標, 這個指標 指向一個 (非常數) foo.

  • Boost.Lambda
  • C++0x
  • C/C++ Tips - The Marco Assert
    assert() 是個用來 debug 的macro, 接受一個 expression. 如果 expression 被 evalute 的結果為整數零, 或能被 convert 成零 (如 null pointer), 則會引發 assertion failure.
    assert(str != NULL); //str == NULL時會引發assert

1 則留言:

fr3@K 提到...

哇! 你真是超用功的~