1.封裝:將記錄包起來讓其自己去幹。
2.抽象:記錄一下這些傢伙的屬性,比如都是人。
3.繼承:生下來的兒子跟父親乙個鳥樣。
4.多型:兒子除了含有父親的內容外,還有自己的特徵。
5.標頭檔案中不加「.h」。
6.加上命名空間 using namespace std; //後期考慮到c++主要用在大型程式設計,可以不加,但是一些呼叫的型別要用std::xxoo的形式。
7.cin>>i;輸入(面板輸入到i) coutcin.get()用來從指定的輸入流中提取乙個字元(包括空白字元);
#include
using namespace std;
int main()
if(cin.peek()=='\n')
}cout<8.ungetc(ch,stdin);//將變數ch中存放的字元退回給stdin輸入流(其中ch=getchar();面板輸入的字元被ch賦予,為了使其重新回到面板中可以使用該句)
9.建構函式:物件可以使用的函式。比如:in.open()
10.可以加std::cin.ignore(100,『\n』);std::cin.get();//暫停結束,直到任意輸入一字元再結束(這裡的ignore()表示忽略100個字元,除非是\n就不忽略)
11.函式過載:將函式的作用重新定義
12.區域性變數需要初始化為0
13.在string str;時,由於cin>>str會由於遇到空格便結束,所以要改為getline(cin,str);//表示用cin的方式輸入一串東西給str
14."&"表示獲得變數的位址
15.用『 』括起來的表示為單個字元
16.int *p1=&myint,這裡表示的指標是存位址
*p1=233;這裡表示的是解引用,給位址在p1中的記憶體位置賦值233
17.如果函式形式為swap(int *p,int*q),傳入的引數應該為位址swap(&p,&q)
形式為swap(int &p,int &q)時,直接傳入引數就行,即為swap(p,q)
18.用typedef來為乙個型別定義建立乙個別名:typedef int* intpointer,意思就是說,intpointer=int*
19.類 class myfirstclass
};//要求類名的第乙個字母採用大寫,同時在類宣告末尾必須有乙個分號,類主要由裡面的變數還有函式組成
20.queue(模板類)佇列:需要元素型別
eg:queueq1;//表示q1是乙個佇列
queue的基本操作:
入隊:q.push(x);將x接到佇列的末端
出隊:q.pop();彈出佇列的第乙個元素,並不會返回其值
訪問隊首元素:q.front();即最早被壓入佇列的元素
訪問隊尾元素:q.back();即最後被壓入佇列的元素
判斷佇列空:q.empty();當佇列空時,返回true
訪問佇列中元素的個數:q.size();
21.構造器
class car
car(void);//建構函式名字與類名一樣
car::car(void)//定義建構函式內容
22.析構器
class car
car(void);
~car();//析構函式,避免記憶體洩漏,可在析構函式中加內容 car::~car()
23.繼承:
class animal
public:
std::string mouth;
void eat();
class pig:public animal
void sleep();
};//繼承父類的所有內容,並可以擁有自己的內容
void animal::eat()
}//對函式內容進行填充
24. public:允許任何**訪問
protected:允許這個類本身還有它的子類訪問
private:允許這個類本身訪問
25.在類裡面加 friend class xxoo,表示另乙個類xxoo可以呼叫這個類裡面的東西
26.直接建立乙個指標並讓它指向新分配的記憶體塊
int *pointer=new int;
*pointer=110;//將記憶體塊存進去內容
std::cout<<*pointer;
delete pointer;//要求每乙個new都是需要乙個delete,避免占用太多死記憶體,導致記憶體洩漏
27.在基類中宣告函式為虛函式(在函式前加virtual),這樣在子類中對函式進行過載後,在後期呼叫時,即使用基類型別定義子 類的建構函式如:
parent *child=new child("xxoo");//建構函式為child,開闢了乙個新記憶體空間放著建構函式,並向建構函式中輸 入引數,但是由於是定義的指標型別是基類的,所以預設的記憶體塊中的同名函式引用的是父類的,沒辦法體現出函式的重 載,所以在基類中將後期要過載的函式變為虛函式,這樣就能使得成功呼叫過載函式
29.基類中的析構函式應該寫為虛函式,是為了子類中的析構函式能被正確呼叫,然後再呼叫基類中的析構函式,析構函式都是 在main()中所有**執行結束後再呼叫的。
30.在進行多繼承時,為了防止子類的兩個基類中都含有相同的屬性(此時兩個基類可能是從同乙個基類中繼承而來得的),在 原基類繼承更高階的基類中應該使用虛繼承:
class teacher:virtual public preson
class student:virtual public person
class teachstudent:public teacher,public student
};//可以避免該類中含有兩份person內的屬性
賦值方式為:x[1]=...;x[2]=...;
delete x;//刪除開闢出來的陣列空間
32.模板定義:
template//模板定義某種模糊型別為t
void swap(t &a,t&b)//模糊型別引用
t temp=a;
a=b;
b=temp;
int main()
int i1=100;
int i2=200;
swap(i1,i2);
std::string s1="jjj";
std::string s2="rrr";
swap(s1,s2);
return 0;
33.模板定義後的類進行初始化
template
class myclass
myclass();//建構函式
void swap(t &a,t &b);//模糊型別引用的成員函式
myclass::myclass()
}//類模板定義後的建構函式初始化需要加
3 C 知識點 is和as
is和as 都是用於型別轉換的操作。但是這兩個有什麼區別呢?簡單的來說 is 判斷成立則返回true,反之返回false。as 成立則返回要轉換的物件,不成立則返回null。下面掏一手 來說明一下。using system using system.collections.generic using...
C語言知識點 3
1.指標與陣列 用陣列指標遍歷陣列每個元素,指標當作陣列來用,int ages 5 int p p ages p ages 0 p 0 p 2 ages 2 p 2 指標變數的p 1究竟加多少,取決於指標的型別,另外指標指向的是陣列的首元素,並不是指向陣列,這也和指標型別有關,指標是int型別,只能...
C語言知識點總結
有段事件沒有寫c程式了,有些地方有些生疏了。這兩天事情比較少,準備再系統的看一邊c的基礎知識。這裡再總結一下平時沒太注意的知識要點。1 c語言的語句塊在c語言中,任何允許出現語句的地方既可以是由 號結尾的一條語句,也可以是由 括起來的若干條語句或宣告組成的語句塊 statement block 語句...