整行輸入
#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 引用必須初始化 問 指標型別的引用?答 型別 指標引用名...