有關c與c++強型別與弱型別區別
void main1()
cpp獨有的變數初始化與iostream實現輸入與輸出
//int a = 5;c語言和c++都可以這樣
//int a(5); c++獨特的初始化方式
//double a(3.5);
//char *str = "1234";
//char *str("china");
wchar_t *str(l"china"); //寬字元
//cout << str;//這樣是輸出str變數的位址
//wcout << str;寬字元,漢字,棒子文
system("pause");
注意:cout是用來輸出char的,如果用cout輸出wchar,只會輸出位址,要使用wcout輸出wchar。wcout預設是不輸出中文的,要想輸出中文,要先加入setlocale( lc_all, "chs" );這行**。
c++要求
1.掌握各個知識點,並強化點與點之間的聯絡,
2.充分理解設計模式,
3.學會綜合應用所有的知識點
c++與c標頭檔案的不同
#include//加以區分c++的標頭檔案,還是c語言的標頭檔案
在.cpp中用c的**, c的標頭檔案已經優化加了extern c使用c的呼叫與鏈結約定
c++獨有的函式過載
:關於**模式
過載函式是函式的一種特殊情況,為方便使用,c++允許在同一範圍中宣告幾個功能類似的同名函式,但是這些同名函式的
形式引數
(指引數的個數或者型別或者型別順序)不同,域返回值無關
//引數的個數,引數的型別不同,型別順序不同, 與返回值無關
1.void go(int a)
2.void go(double a)//與1型別不同
3.void go(double a, int b)//與1,2引數個數不同
4.void go(int a, double b)//與3個數型別而且型別順序也不同
5.錯誤//*int go(double a)//引數與2相同不合法與返回值無關
void go(int a,int b)//與4的b的引數不同
上面1,2,3,5是合法的
c++獨有函式預設引數
1.明確函式引數從右向左進行處理
2.預設引數必須右邊,非預設引數必須左邊(預設引數之間不能有非預設引數,)(非預設引數之間不能有預設引數)
3.函式過載衝突的解決辦法:1.命名空間 2.用函式指標
(注意:函式指標不可以有預設引數,需要精確呼叫)
#include#include#include#include#include//預設引數必須放在右邊
//預設引數中間不允許出現不預設的
最後c++獨有的命名空間
輸出符 <<
命名空間 std
域控制符 ::
std::cout << "hello world";//輸出hello world
namespace應用場合
1.瀑布迭代式軟體開始
1.資料重名
2.避免**衝突 2.函式重名
3.類和結構體重名
關於避免**衝突的例項
#include "iostream"
//最近檢視iostream時發現這個標頭檔案包含了namespace std;這個命名空間
#include"stdlib.h"
namespace myspace//自定義的命名空間
}namespace myspacea //自定義的命名空間
}::域操作符void main1()
另外namespace的例外,(命名空間匿名等價於命名空間預設為全域性變數
#include"iostream"
//沒有命名的命名空間可以直接呼叫
namespace
}void main3()
命名空間特性
1.自己可以定義命名空間
2.可以自己拓展命名空間實現迭代
3.命名空間可以實現別名
4.命名空間可以巢狀
5.命名空間預設都是共有的
6.命名空間內部不可以重名
7,命名空間不同,同名變數需要命名空間明確
#include namespace runrunrunrun //命名乙個runrunrunrun的命名空間
}namespace runrunrunrun //命名空間的拓展
namespace r = runrunrunrun;//給命名空間起乙個別名
void main132()
//using namespace r;
void main11();}
//下面定義了2個函式,函式型別相同,一般不在命名空間內部定義函式,因為一旦這個空間需要改,那麼很麻煩
//我們可以在命名空間內部定義乙個函式指標實現介面封裝,這樣就易於維護
int add(int a, int b)
int addp(int a, int b)
struct mystruct
;void main1123()
7.命名空間不同,同名變數需要命名空間明確與using作用域
namespace mydata
namespace yourdata
using namespace mydata;//using必須在命名空間的後面,作用域,如果提前,會報錯
using namespace yourdata;
//using如果變數重名,會出現不明確錯誤,加上命名空間修飾符
void go()
//using namespace mydata;//作用域為從**開始到結束
void main()
c++獨有的auto自動變數1.自動獲取型別,泛型設計思想
2.c++11新語法實現自動迴圈一維陣列(迴圈必須是指標常量,陣列)
#include#include//自動變數,自動獲取型別,輸出,泛型
//自動變數,可以實現自動迴圈一維陣列
//自動迴圈的時候對應的必須是常量(如一維陣列的陣列名,或者2,3,4維的陣列名)
void mai1111n()
{ auto num = 10.9;//自動匹配型別
auto numa = 10/2.0;//在c中無法獲取auto的型別,c++可以
std::cout << num <
第一天筆記
ide integrated development environment 整合開發環境 常用開發環境有idle pythcharm wingide eclipse ipython 1.ctrl z 和回車 2.輸入quit 命令 3.直接關閉命令列視窗 ctrl c python中一切皆物件。物...
C 學習筆記 第一天
一 c 與.net framework的關係 二 net編譯過程 三 中間語言il il intermediate language 是微軟.net平台上衍生出的一門中間語言,net平台上的各種高階語言 如c vb,f 的編譯器會將各自的 轉化為il。其中包含了.net平台上的各種元素,如 范型 類...
Linux第一天筆記
1 linux指一套免費使用和自由傳播的類unix作業系統。linux一切皆檔案!2 fsf free software foundation 自由軟體聯盟 gnu gun s not unix general public license gpl 3 linux核心版本格式是x.y.zz www,...