this 實際上是成員函式的乙個形參,在呼叫成員函式時將物件的位址作為實參傳遞給 this。不過 this 這個形參是隱式的,它並不出現在**中,而是在編譯階段由編譯器默默地將它新增到引數列表中。
static 成員變數必須在類宣告的外部初始化,具體形式為:
type class::name = value;
type 是變數的型別,class 是類名,name 是變數名,value 是初始值。將上面的 m_total 初始化:
int student::m_total = 0;
靜態成員變數在初始化時不能再加 static,但必須要有資料型別。被 private、protected、public 修飾的靜態成員變數都可以用這種方式初始化。
注意:static 成員變數的記憶體既不是在宣告類時分配,也不是在建立物件時分配,而是在(類外)初始化時分配。反過來說,沒有在類外初始化的 static 成員變數不能使用。
注意:static 成員變數不占用物件的記憶體,而是在所有物件之外開闢記憶體,即使不建立物件也可以訪問。
#include
using
namespace std;
class
student
;//初始化靜態成員變數
int student::m_total=0;
student::
student
(char
*name,
int age,
float score):
m_name
(name),
m_age
(age),
m_score
(score)
void student::
show
()int
main
()string
c_str(),該函式能夠將 string 字串轉換為c風格的字串,並返回該字串的 const 指標(const char*)。
用+
來拼接字串時,運算子的兩邊可以都是 string 字串,也可以是乙個 string 字串和乙個c風格的字串,還可以是乙個 string 字串和乙個字元陣列,或者是乙個 string 字串和乙個單獨的字元。 s3
.erase(5
,3); 刪除s2=
s1.substr(6
,6); 提取
intindex =s1
.find(s2
,5); 查詢,返回第幾位 ,無結果返回很大值。 第二個引數為從第幾位開始查詢
intindex =s1
.rfind(s2
,6); 查詢,返回第幾位,無結果返回很大值。第二個引數是最多查詢到第幾位
C 學習記錄(2)
csize類 類csize是對windows結構size的封裝,凡是能用size結構的地方都可以用csize代替。結構size表示乙個矩形的長度和寬度,其定義為 typedef struct tagsize size 其中 cx cy分別是寬度和高度。這些都是巨集定義,不是函式。在begin mes...
I2C學習記錄
i2c inter integrated circuit 匯流排是由philips公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。是微電子通訊控制領域廣泛採用的一種匯流排標準。通過序列資料 sda 線和序列時鐘 scl 線在連線到匯流排的器件間傳遞資訊。通過序列資料 sda 線和序列時鐘 ...
C語言學習記錄(2)
以上一次學習記錄 中的hello world!為例 include 標頭檔案也叫編譯預處理指令 intmain void 定義主函式 函式結束首先,在每行後的說明文字是注釋內容,後的文字不參與程式的執行,並且,是單行注釋,也就是說其後面的內容是不參與執行的,可以佔據一整行,但是不能跨行。類似作用的符...