原创 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); 它接受一個指