輸出
#include "iostream"//
包含c++的標頭檔案
using
namespace std; //
使用命名空間 std 標準的命名空間 (在這個命名空間中定義了很多標準定義)
void
main()
求圓面積
//在c++中 定義了乙個自定義資料型別 mycicle 圓形
class
mycicle
double getr() //
成員函式
double
gets()
};//
void
main03()
//用物件導向的方法
//1 類的抽象 成員變數和成員函式
//2 例項化 類的物件
//3 求面積
//面向過程加工的是 乙個乙個的函式
//物件導向加工的是:乙個乙個的類
//4 main整合測試
//思考1:類的呼叫 執行過程分析==>類**不是一步一步指向
//類是乙個資料型別,(固定大小記憶體塊的別名); 定義乙個類,是乙個抽象的概念,不會給你分配記憶體
//用資料型別定義變數的時候,才會分配記憶體
//思考2:拋磚: c++編譯器是如何處理 多個物件,呼叫類的成員函式的;具體一點:如何區分是c1 c2 c3 呼叫了gets,拋磚.....
定義變數的時候,初始值就已經固定下來了,後面需要呼叫函式才能改變成新的值,成員函式只有呼叫了才會執行
所謂namespace,是指識別符號的各種可見範圍。c++標準程式庫中的所有識別符號都被定義於乙個名為
std的
namespace中。
命名空間std封裝的是標準程式庫的名稱,標準程式庫為了和以前的標頭檔案區別,一般不加
".h"
當使用的時候,該標頭檔案沒有定義全域性命名空間,必須使用
namespace std
;這樣才能正確使用
cout。
命名空間
#include "iostream
"using
namespace
std;
namespace
namespacea
namespace
namespaceb
; }
}void
main()
1) 當使用
的時候,該標頭檔案
沒有定義全域性命名空間,必須使用namespace std;這樣才能正確使用cout。若不引入using namespace std ,需要這樣做。
std::cout。
2) c++標準為了和c區別開,也為了正確使用命名空間,規定標頭檔案
不使用字尾.h。
3) c++命名空間的定義: namespace name
4) using namespace namespacea;
5) namespce定義可巢狀。
c++增強部分
1.c語言中的變數都必須在作用域開始的位置定義!!
c++中更強調語言的「實用性」,所有的變數都可以在需要使用時再定義。
2.register關鍵字增強
c語言中無法取得
register
變數位址
在c++中依然支援
register
關鍵字
c++編譯器有自己的優化方式,不使用
register
也可能做優化
c++中可以取得
register
變數的位址
3.變數檢測增強
在c語言中,重複定義多個同名的全域性變數是合法的
在c++中,不允許定義多個同名的全域性變數
4.struct型別加強
c語言的
struct
定義了一組變數的集合,
c編譯器並不認為這是一種新的型別
c++中的
struct
是乙個新型別的定義宣告
5.c++中所有的變數和函式都必須有型別
6.新增bool型別
true代表真值,編譯器內部用
1來表示
false代表非真值,編譯器內部用
0來表示
負數也是true
在c語言中,表示式返回的是乙個數值
在c++中,表示式返回的是變數本身
const在c++中是乙個真正的常量,在c中可以通過指標修改
const int c = 5; 約等於 #define c 5
引用可以看做乙個已定義變數的別名(c語言沒有引用)
#includeusingnamespace
std;
void
main()
普通引用在宣告時必須用其它的變數進行初始化
structteacher
;void printft(teacher *pt)
//pt是t1的別名 ,相當於修改了t1
void printft2(teacher &pt)
//pt和t1的是兩個不同的變數
void
printft3(teacher pt)
void
main()
引用的本質
#include usingnamespace
std;
void
main()
a和b是同一塊記憶體空間的門牌號,引用也佔空間(4個位元組,和資料型別沒關係)
引用在c++內部就是乙個常量指標&a a=5 == *const a *a=5
#include usingnamespace
std;
void modifya(int &a)
void modifyb(int * const
a) void
main()
間接賦值成立的三個條件
1定義兩個變數 (乙個實參乙個形參)
2建立關聯 實參取位址傳給形參
3*p形參去間接的修改實參的值
引用在實現上,只不過是把:間接賦值成立的三個條件的後兩步和二為一(當實參傳給形參引用的時候,只不過是c++編譯器幫我們程式設計師手工取了乙個實參位址,傳給了形參引用(常量指標))
若返回棧變數,不能成為其它引用的初始值
函式返回若是乙個引用,可以當左值
#include usingnamespace
std;
int&g2()
void
main()
輸出11
101
C 基礎 引用
函式中引數的傳遞方式 傳值 在函式域中為引數重新分配記憶體,而把實參的數值傳遞到新分配的記憶體中。優點 不會改變實參的值 引用 引用不是定義乙個新的變數,而是給乙個已經定義的變數重新起乙個別名,也就是c 系統不為引用型別變數 分配記憶體空間。引用主要用於函式之間的資料傳遞。優點 如果實參是乙個複雜的...
C 基礎 引用
什麼是引用 引用的概念及用法 引用做引數 引用做返回值 引用和指標的區別 引用其實就是給物件 起別名 定義了乙個原有物件的同義詞,對引用進行的操作和對被引用所繫結的物件做的操作等價 用法 型別 變數名 變數名 如 int a 0 int b a 引用的型別必須與被引用的型別相同 宣告引用的同時必須對...
C 引用基礎
引用 includeusing namespace std struct student struct teacher int getnum student s2 void main 引用賦值 b 13 printf a d n a 結構體引用 student s1 s1.age 12 定義s1的引...