限定符:private、protected、public
private是預設修飾符,protected類似於private,不同點在於繼承情況不一樣。
class tv
//從棧中例項化
tv tv1;
tv tvarr[20];
//從堆中例項化
tv *p=new tv();
tv *p1=new tv[20];
//其他操作
delete p;
delete p1;
//從棧中訪問
tv.type=0;
tv.changevol();
//從堆中訪問
p->
type=0;
p->changevol();
delete p;
p=null;
//初始化
#include
string s1;
string s2("binggo");
string s3(s2);
string s4(n,'b');
//方法
s.empty()
s.size()
s[n]
s1+s2
s1 = s2
s1 == s2
s1 != s2
string s1 = "hello" + "world"
//錯誤
#include
#include
using
namespace
std;
class student
string getname()
private:
string m_strname;
};int main()
類內定義會優先以內聯函式的方式進行編譯。
同檔案類外定義
class car
;void car::run(){} //car::表示run()屬於類car
分檔案類外定義
class car
;#include "car.h"
//包含標頭檔案car.h
void car::run(){}
記憶體分割槽
棧區:int x=0; int *p=null;
,記憶體分配有系統控制。
堆去:int *p=new int[10];
,關鍵字new,delete
分配,釋放記憶體。
全域性區:全域性變數,靜態變數。
常量區:string str="binggo';
。
**區:二進位制**。
建構函式
建構函式在物件例項化時被自動條用;
建構函式與類同名;
建構函式沒有返回值;
建構函式可以過載,但例項化物件僅用到乙個建構函式。
class student
//建構函式
student(string name) //過載
private: m_strname;
}
初始化列表class student
private:
const
int m_strname; //m_ipi為乙個const
int m_iage;
}
拷貝建構函式int main()
class student
student(const student & s){} //定義格式:類名(const 類名 & 變數)
private:
string m_strname;
};
如果沒有自定義拷貝建構函式則系統自動生成乙個預設拷貝建構函式;
當採用賦值形式例項化物件時系統自動呼叫拷貝建構函式。
總結建構函式:
- 無引數建構函式
- - 預設建構函式
- 有引數建構函式
- - 引數預設值(所有引數都有預設值,就是預設建構函式)
- - 引數無預設值
自動生成的建構函式:
- 普通建構函式
- 拷貝建構函式
普通(拷貝)建構函式——初始化列表
析構函式
如果沒有定義析構函式,系統會自動生成。
析構函式在物件銷毀時自動呼叫。
析構函式沒有返回值,沒有引數故不能過載。
~student(){}
//定義格式:~ 類名()
//在堆中例項化
studnet *p = student();
delete p; //會輸出"~student()"
《C 多型篇 imooc》筆記
多型 相同物件收到不同訊息或不同物件收到相同訊息時產生的不同動作。虛函式 shape circle,shape rect 三個類中都定義了同名的public成員函式calcarea 當定義父類指標指向堆中子類的例項後,呼叫其成員函式,將預設呼叫父類的成員函式。virtual void calcare...
《C 模板類篇 imooc》筆記
友元全域性函式 全域性函式 void printtime time t 在time類中宣告 friend void printtime time t 通過使用友元,就能夠使得物件直接訪問它的私有資料成員和成員函式。友元成員函式 class time void printtime time t inc...
c 入門學習筆記指標篇上
指標優點 1。為函式提供修改呼叫變元的手段 2。支援c 動態分配子程式 3。可以改善某些子程式的效率 4。為動態資料結構 如二叉樹 鍊錶 提供支援 注 指標為程式引入了一層間接性,可以操控指標而不直接操控物件。1。可操控指標內含的位址也可操控指標所指的物件 2。指標可能並不指向任何物件,寫 pi時,...