本文只是以5天時間超快地學完c++後,為了讓自己不忘記,而寫下的腦中的記憶.可能有誤的,大家不要輕信.如發現錯誤,,還麻煩告訴我一聲.
運算子過載,運算元只能是類,系統先檢查運算元是不是系統預設的(如果是+,則檢查是不是int float...),不是剛檢查員有沒有對這個操作符過載.
b是a的派生,b * p = &b,p指向的是基類頭部.
函式的過載:
根據引數的個數、型別來決定使用哪乙個函式體。這些函式是同名的,不能根據函式的返回值來判定使用哪乙個函式體。過載
// practice.cpp : 定義控制台應用程式的入口點。//
#include "stdafx.h"
#include
using namespace std;
void mymax(int a,int b)
上面的c++程式,編譯會出錯,提示「對過載函式的呼叫不明確」。可能是因為直接用數值來做為形參,系統難以辨認。可改為先定義某一型別變數,然後用變數來做形參,**如下:
用變數做形參過載
// practice.cpp : 定義控制台應用程式的入口點。//
#include "stdafx.h"
#include
using namespace std;
void mymax(int a,int b)
函式模板:
模板// practice.cpp : 定義控制台應用程式的入口點。//
#include "stdafx.h"
#include
using namespace std;
template //模板只能在全域性部分定義
void mymax( ti a, tj b)
有預設引數的函式:
標題
// practice.cpp : 定義控制台應用程式的入口點。//
#include "stdafx.h"
#include
using namespace std;
int _tmain(int argc, _tchar* argv)
void printabc(int a,int b,int c) //此處不能省略形參名,得是能省略對預設引數的賦值
; //一定不要忘記了這個
void myclass::printfsth(int a)
建構函式:
建構函式不能有返回值型別。
引數初始化列表對資料成員初始化
// practice.cpp : 定義控制台應用程式的入口點。//
#include "stdafx.h"
#include
using namespace std;
class myclass
;
myclass::myclass(int a):b(a) //引數初始化列表對資料成員初始化只能用在建構函式中,且被初始化的變數只能是基類的成員。
const 型資料的小結
形式含義
time const t1;
t1是常物件,其值在任何情況下都不能改變
void time::fun()const
fun是time類中的常成員函式,可以引用,但不能修改本類中的資料成員
time * const p;
p是指向time 物件的常指標,p的值(即p的指向)不能改變
const time * p;
p 是指向time類常 物件的指標其指向的類物件的值不能通過指標來改變
time &t1 = t;
t1是time類物件t的引用,二者指向同一段記憶體空間
反正,const後來整體是常型,不能改變。
類,建構函式,析構函式
當沒有主動去停用乙個類時,這個類在整個程式結束時才被釋放,也就是說,在整程式結束時才執行 所有的析構函式。
標題// practice.cpp : 定義控制台應用程式的入口點。//
#include "stdafx.h"
#include
using namespace std;
class mybaseclass;
mybaseclass::mybaseclass();
void pengyou( mybaseclass &t )
友元成員函式
// practice.cpp : 定義控制台應用程式的入口點。//
#include "stdafx.h"
#include
using namespace std;
class date;
class time
;class date
;time::time(int h,int m,int s):hour(h),minute(m),sec(s){}
void time::display(date &d)
友元函式
// practice.cpp : 定義控制台應用程式的入口點。//
#include "stdafx.h"
#include
using namespace std;
class date; //提前宣告
class time
;class date
;//time類的建構函式
time::time(int h,int m,int s):hour(h),minute(m),sec(s){}
void time::display(date &d)
模板類
// practice.cpp : 定義控制台應用程式的入口點。//
#include "stdafx.h"
#include
using namespace std;
template
class myclass
C語言回顧
1.資料型別對應的位元組數 資料型別 位元組數 unsignd char 1 short int 2 int 4 long int 4 long long int 8 float 4 double 8 long double 12 2.讀取資料格式指定符 short hd int d float f...
C 回顧之類
定義在類內部的函式是隱式的inline函式。常量成員函式 預設情況下隱式的this的型別是指向類型別非常量版本的常量指標,即自身是常量,但是指向的物件不是常量,為了使得this能繫結到乙個常量物件 如const 則在函式後面加上const。但是這樣子就不可以改變呼叫它的物件的資料成員。include...
C 回顧 常量
一 值替代 要使用const而非 define,必須把const定義放進標頭檔案裡。這樣,通過包含標頭檔案,可把const定義單獨放在乙個地方並把它分配給乙個編譯單元。c 中的const預設為內部連線 c中預設是外部連線 也就是說,const僅在const被定義過的檔案裡才是可見的,而在連線時不能被...