C 篇 C 學習筆記01

2021-08-31 01:15:47 字數 3536 閱讀 9214

整行輸入

#includestring mystr;

getline(cin,mystr);

字串相加

#includestring s1="i am";

string s2("a boy") ;

string s3,s4;

s3=s1+" "+s2;

s4+="8";

給字元陣列賦值

#includechar szmyname [20];

strcpy (szmyname,"j. soulie");

//或者:

char szmyname [20];

setstring (szmyname,"j. soulie");

//或者:

char mybuffer [100];

cin.getline (mybuffer,100);

字串相加

#include#includeint a=0;

string mystr;

getline(cin,mystr);

stringstream(mystr) >> a;

"1024"->1024

go to語句

lable:

......

goto lable;

exit函式

exit(0);//正常退出

exit(其他值);//異常退出

函式過載

int divide (int a, int b) 

float divide (float a, float b)

int divide (int a)

內聯函式

(1)成員函式:寫在類裡面

(2)全域性函式:前面加上inline

函式引數預設值

void divide(int a,int b=2);

divide(1);//當只有乙個引數時,預設為divide(1,2);

divide(1,3);

陣列作為引數傳遞

int a[10];

//直接傳輸組

void b(int x)

b(a);//此時a=1;

動態記憶體分配

int *a;

a=new int;

delete a;

//如果建立乙個陣列

a=new int [5];

delete a;

//或者

int *a=new int[5];

delete a;

//將陣列初始化為0

int *a=new int[5]();

delete a;

動態物件建立

myclass *a=new myclass;//myclass為類,a為物件

//呼叫建構函式

myclass *a=new myclass(1);

delete a;

//建立物件陣列

myclass *a=new myclass[100];

delete a;

建構函式和析構函式

class a

; a::a(int aa,int bb)

a::a(const a& rv)

a::~a()

//可以將預設建構函式和自己建立的建構函式寫成乙個

a::a(int aa=0,int bb=0)//預設a=0,b=0;

//也可以使用建構函式初始化列表

a::a(int aa,int bb):a(aa),b(bb)

操作符過載

class cvector ;

cvector (int,int);

cvector operator + (cvector);//加號運算子過載

}; cvector cvector::operator+ (cvector param)

//二元運算子在類內乙個引數,在類外兩個引數

cvector operator+(cvector pa,cvector pb)

類的繼承

class a

;class b:public a

//理論上說,子類(drived class)繼承了基類(base class)的所有成員,除了:

//建構函式constructor 和析構函式destructor

//operator=() 成員

//friends

//繼承裡面注意 隱藏實現

//繼承初始化:

b::b(int i):a(i)

多型、虛函式、抽象基類

//關鍵字virtual 的作用就是在當使用基類的指標的時候,使子類中與基類同名的成員(函式)在適當的時候被//呼叫。

class cpolygon

};cpolygon * ppoly1 = ▭//rect為cpolygon子類物件

cpolygon * ppoly2 = &trgl;//trgl為cpolygon子類物件

cout << ppoly1->area() << endl;//呼叫rect.area()

cout << ppoly2->area() << endl;//呼叫trgl.area()

函式模板

template t getmax (t a, t b) 

int i=5, j=6, k;

long l=10, m=5, n;

k=getmax(i,j);

n=getmax(l,m);

//也可以用幾種不同型別

template t getmin (t a, u b) ;

類模板

template class pair 

}paira(1,2);

pairb(1.0,2.0);

//在類外定義函式時,每定義乙個,前面要加一句 template

檔案輸入輸出

#includeofstream file;

file.open("1.txt")的後面可以加好多引數

void a(const char* filename)

bool is_open(); //判斷是否開啟

file.close(); //關閉檔案

file.eof(); //判斷是否到達檔案末尾,返回true/false

//還有幾個檢測當前指標和改變當前指標位置函式

tellg() 和 tellp()

seekg() 和 seekp()

c 學習筆記01

c 標準輸入輸出流類物件 cin cout cerr 對應c語言中的3個檔案指標 stdin,stdout stderr 結構體和類的區別主要在訪問控制方面 訪問許可權分為3種 public,private,protect 結構體是一種特殊的類預設為public 類預設為private 物件導向思想...

C 學習筆記01

1 引用 定義乙個引用,並將其初始化為引用某個變數。型別名 引用名 某變數名 int n 4 int r n r引用了n,r的型別是int 某個變數的引用,等價於這個變數,相當於該變數的乙個別名。注 引用的簡單示例 在c語言中 void swap int a,int b int n1,n2 swap...

慕課學習C 筆記01 離港篇 起航篇

問 什麼是引用?答 引用就是乙個變數的別名 相對於真名 引用必須初始化,可以理解為乙個變數不能只有別名,總是乙個真名變數的別名,因此初始化就是告訴我們這個別名b的真名是a。引用用於函式引數,比指標的使用更簡潔。int a 10 int b a 引用必須初始化 問 指標型別的引用?答 型別 指標引用名...