原创 namespace 使用簡單示例

#include <cstdlib>#include <iostream>  using namespace std; namespace p{void foo(){     cout<<"test";//可以使用std空間的流     

原创 確定對象被使用前巳先被初始化

  通常如果你使用C part of C++  而且初始化可能招致運行期成本,那麼就不保證發生初始化。一旦進入non-C part ofC ,規則有些變化。這就很好地解釋了爲什麼array (來自C part of C++ )不保證其內容

原创 開啓"不明確行爲"的潘多拉盒子——解釋

     由於編譯器會爲用戶自定義類型(user-defined types) 之成員變量自動調用default 構造函數一一如果那些成員變量在"成員初值列"中沒有被指定初值的話,因而引發某些程序員過度誇張地採用以上寫法。那是可理解的,但

原创 #ifdef、#ifndef、#define與#endif的使用

#include "stdio.h" //#define WINDOWS  3   //執行條件   #ifndef WINDOWS#define type  2#else #define type 5 #endif int main(

原创 C#筆錄

     筆錄是在學過c++ 的基礎上記錄的,如果你學過c++,那麼比較快速學習C#是可能的,但細節與高質量的程序設計還是要更多的實踐經驗才能做的出。這是我大概一天的時間記錄下來的,有些粗略,但是主要把c#的特別之處記錄下來了,給大家分享

原创 設計模式——模板方法模式(6)

       模板方法模式 不管是你的電腦還是我的電腦,用電腦的程式是一樣的,即開機、進入操作系統、用電腦工作(比如畫圖、打遊戲、打字,每個人可以做不同的工作),然後關機。所以可以用模板方法實現。 特點:把不變的代碼部分都轉移到父類中

原创 C++ STL List

#include<iostream>#include<algorithm>#include<cstdlib>#include<list>/**************************************************

原创 容器 C++ set

容器 C++ set    set, multisetset和multiset會根據特定的排序準則自動將元素排序,set中元素不允許重複, multiset可以重複。 因爲是排序的,所以set中的元素不能被修改,只能刪除後再添加。向s

原创 儘可能使用const

const 的一件奇妙事情是,它允許你指定一個語義約束(也就是指定一個"不該被改動"的對象) ,而編譯器會強制實施這項約束。它允許你告訴編譯器和其他程序員某值應該保持不變。只要這(某值保持不變)是事實,你就該確實說出來,因爲說出來可以獲得

原创 設計模式——裝飾模式(7)

       模板方法模式 不管是你的電腦還是我的電腦,用電腦的程式是一樣的,即開機、進入操作系統、用電腦工作(比如畫圖、打遊戲、打字,每個人可以做不同的工作),然後關機。所以可以用模板方法實現。 特點:把不變的代碼部分都轉移到父類中

原创 const成員函數的使用——金山面試

const成員函數表示該成員函數只能讀類數據成員,而不能修改類成員數據。定義const成員函數時,把const關鍵字放在函數的參數表和函數體之間。有人可能會問:爲什麼不將const放在函數聲明前呢?因爲這樣做意味着函數的返回值是常量,意

原创 虛函數的作用,爲什麼構造函數不能是虛函數——金山面試

   第一,在概念上,構造函數的工作是把對象變成存在物。在任何構造函數中,對象可能只是部分被形成—我們只能知道基類已被初始化了,但不知道哪個類是從這個基類繼承來的。然而,虛函數是“向前”和“向外”進行調用。它能調用在派生類中的函數。如果我

原创 c++經典面試

#include <IOSTREAM.H>#include <CSTDLIB> char* GetString1(){     char p[] = "Hello World";        return p; } char* GetS

原创 設計模式——抽象工廠模式(8)

     抽象工廠模式 每種汽車都要有發動機,輪胎,方向盤等零件,而且要想組裝一輛汽車必須具有這些零件,但不同品牌的汽車所使用的零部件卻不同。試用抽象工廠模式實現。 特點:定義了一個創建一系列相關或相互依賴的接口,而無需指定它們的具體類

原创 C++拷貝構造函數

1 拷貝構造 Copy構造函數用於將一個對象拷貝到新創建的對象中。也就是說它用於初始化過程中,而不是常規的賦值過程中。一般的Copy構造函數原型通常如下: Class_Name(const Class_Name& rhs); 它接受一個指