C 短跑回顧

2021-04-02 22:45:19 字數 2967 閱讀 2880

本文只是以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被定義過的檔案裡才是可見的,而在連線時不能被...