原创 template-模板完全特化

類模板的定義與使用 #include <stdio.h> #include <typeinfo.h> template <class T1,class T2> class A { T1 i; T2 j; pub

原创 inline-內聯函數

內聯函數是一種提高代碼效率的技術,用適度的代碼空間膨脹,來換取較高的執行速度。 內聯函數與預處理宏有相同之處,在每一處調用內聯函數的地方,編譯器將展開內聯函數,將代碼直接嵌入到調用處,從而節省了函數調用、參數入棧和返回值的處理。 內聯函數

原创 函數重載和虛函數繼承

函數重載和虛函數繼承 #include <stdio.h> class CBase { public: virtual void f(int x) //虛函數 { printf(

原创 vector基礎應用

#include <iostream> #include <vector> #include <string> #include <iterator> #include <algorithm> #include <functional>

原创 C++軟件開發經典面試題目

1、 Static有什麼用途? (1)函數體內static變量的作用範圍是該函數體,該變量的內存只被分配一次,因此它的值在下次調用時不變; (2)模塊內的static全局變量同樣只能在該模塊內的函數訪問和調用,不能被模塊外的其他函數

原创 異常處理

try/catch異常處理 程序如下: #include <stdio.h> int main() { //一個try可以尾隨多個catch塊 try { printf("try 塊1代碼執行\

原创 Accelerated C++之計算學生成績2

第二部分代碼如下: #include <iostream> #include <string> #include <vector> #include <algorithm> #include <iomanip> #include <st

原创 重載流插入/流提取運算符

#include <iostream> using namespace std; //重載流插入/流提取運算符 class Complex { public: friend ostream& operator <<(ostre

原创 指向對象成員的指針

#include <iostream> #include <string> using namespace std; class Student { public: Student(int n, string nam, char

原创 重載雙目/單目運算符

#include <iostream> using namespace std; //重載雙目運算符 > < == class String { public: String(){ p = NULL; }//默認構造函數

原创 類聲明和成員函數定義分離

分離過程如下: student.h class Student { public: void display(); void set_num(); private: int num; char name[

原创 繼承和派生--包含子對象的子類的構造函數

#include <iostream> #include <string> using namespace std; //包含子對象的子類的構造函數 class Student //父類 { public:

原创 繼承與多態

#include <iostream> using namespace std; //聲明類Point class Point { public: Point(float x = 0, float y = 0); //構造函數

原创 C++顯示類型轉換 - reinterpret_cast - const_cast - static_cast - dynamic_cast

C++仍支持C語言的隱式類型轉換,但提供了4個顯式轉換操作函數: - reinterpret_cast - const_cast - static_cast - dynamic_cast 前三個類型的轉換是在編譯時期實現

原创 構造函數

#include <iostream> using namespace std; class Time { public: Time() { hour = 12; minute = 00