一.類(類的6個預設函式)、物件、物件導向等概念
1.cpp的資料型別(除去c中的)
基本資料型別:bool型 邏輯型 非基本型:類 class
void型 無型別
命名空間(為了解決全域性變數命名衝突的問題)
例:#include
using namespace std; //標準輸入輸出流,命名空間為std
int main()
cout
<<''hello world''<; //cout和endl為物件,來自命名空間,若前面沒有宣告命名空間,則寫為:std::cout<<」hello world「return 0;
可以隨時向命名空間新增定義,但是都定義在同一命名空間
例:#inlcude
namespace bit1 //定義乙個命名空間
int a=0;
namespace bit2 //定義另乙個命名空間
int a=20;
int main()
bit1::a=30; //::為作用域解析符
bit2::a=40
2.輸入/輸出 流
cout →標準輸出流物件,《輸出操作符;
cin→標準輸入流物件,>>輸入操作符;
endl→標準換行操作符;
3.函式過載
例:#include
using namespace std;
int add(int num1,int num2)
return num1+num2;
float(float f1,float f2)
return f1+f2;
int main()
int num1=0;
int num2=0;
float f1=0.0;
float f2=0.0;
cin>>num1>>num2;
int ret=add(num1,num2);
cout<<"ret=">f1>>f2;
float f3=add(f1,f2);
注意:在同一作用域內,一組函式名相同,引數列表《個數/型別不同》不同,返回值型別可同可不同。
判斷函式是否過載時,只需要判斷其函式名和引數列表是否相同即可。
在c和cpp中,函式過載的規則不一樣,所以在cpp中使用c的函式時要用extern 」c「。
4.預設函式
全預設函式
例;int add1(int a,int b)
return a+b;
int main()
int ret=add1(); //此處可以不用寫引數,若將其改為add1(3),則結果為3,原因是引數是從左往右填充的
return 0;
半預設函式
例:int add2(int a,int b=0)
二.指標與引用
引用的概念:不是定義乙個新的變數,而是給乙個已經定義的變數賦予乙個新的名字,且該變數可以被多次引用,即乙個變數可以有多個別名;
引用要進行初始化,要明確誰是誰的別名;
引用可以傳遞,例如&q=m;&r=q;
乙個別名只能引用乙個變數
1.const引用
例:#include
using namespace std;
int main()
int *q=null;
const int *p=q;
int m=10;
const int &n=m; //常引用,此時的n作為乙個常量對待,不能直接修改n,只能通過修改m來修改
return 0;
注意:不能將乙個const修飾的變數賦給乙個非const修飾的變數
不能將乙個常量直接引用,除非加上const,如const int &r=5
例:double b=3.14;
const int &k=b;
在**執行過程中,中間變數《臨時》為常屬性,則要用const來修飾。
2.引用用在函式引數中
例:#include
using namespace std;
int swap(int *a,int *b) //傳指標的方式交換兩個變數的值
int tmp=*a;
int *a=*b;
*b=tmp;
對於swap函式而言,還有另一種方法就是利用引用
例:void swap(int &a,int &b)
int tmp=a;
a=b;
b=tmp;
int main()
int a=10;
int b=20;
swap(a,b);
return 0;
3.常引用傳參(當不希望函式內改變引數x的值的時候)
例:void readbigdata(const bigdata &x)
int a=x.arr[1000];
注意:返回值作為引用的時候,不能引用乙個臨時變數
例:int fun()
int ret=10;
return ret; //這裡返回了乙個臨時變數,最好不要這樣寫
4.值返回和引用反彙編
值返回:將ret中的值放到eax暫存器中
組合語言:mov eax,dword ptr[ret];
組合語言:lea eax,[ret];
例:#include
using namespace std;
①int add(int a,int b)
②int *add()
③int &add(int a,int b)
以上三個add函式的功能是一樣的。
引用和指標的區別和聯絡:
1.引用只能開始的時候初始化一次,後面便不能再指向其他變數;
2.引用必須指向有效變數,而指標可以為空;
3.sizeof引用指的是引用物件的大小,sizeof指標指的是物件位址的大小;
4.指標和引用的自增或自減的意義不一樣;
5.相對而言,引用比指標更安全;
C 入門基礎知識
1.c 基本資料型別 整型int 字元型 char 浮點型 float double 邏輯性 bool 無型別 void 也稱內建型別 語言內部 已定義好的型別 非基本資料型別 陣列 type 指標 type 結構體 struct 聯合體 union 列舉 enum 類 class 這些即就是自定義...
c 入門基礎知識
名字空間 namespace,即名字空間,是指 識別符號的各種可見範圍。c 標準程式庫 中的所有識別符號都被定義於乙個名為std的namespace中。使用 using namespace 可以使得後面不需要每次指定名字空間。1 名字 空間除了 系統定義 的名字空間之外,還可以自定義,定義 名字空間...
C 入門基礎知識
一 命名空間 命名空間 實際上就是乙個由程式設計者命名的記憶體區域,程式設計者可以根據需要指定一些有名字的空間域,把一些全域性實體分別放在各個命名空間中,從而與其他全域性實體分隔開來。它相當於乙個更加靈活的檔案域 全域性域 可以用花括號把檔案的一部分括起來,並以關鍵字namespace開頭給它起乙個...