日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

C++——static

發布時間:2025/4/16 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++——static 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

類的靜態成員

我們可以使用static關鍵字來把類成員定義為靜態的。當我們聲明類的成員為靜態時,這意味著無論創建多少個類的對象,靜態成員都只有一個副本。

靜態成員在類的所有對象中是共享的。如果不存在其他的初始化語句,在創建第一個對象時,所有的靜態數據都會被初始化為零。我們不能把靜態成員的初始化放置在類的定義中,但是可以在類的外部通過使用范圍解析運算符?::?來重新聲明靜態變量從而對它進行初始化

#include <iostream>using namespace std;class Line { public:static int count ;Line(){cout << "對象被建立" << endl ;count ++ ;}~Line(){cout << "對象被刪除" << endl ;} }; // 初始化類 Line 的靜態成員 int Line::count = 0 ; void main() {Line line1 ;Line line2 ;cout << Line::count << endl ; }/* 輸出結果是 對象被建立 對象被建立 2 對象被刪除 對象被刪除*/

靜態成員函數

如果把函數成員聲明為靜態的,就可以把函數與類的任何特定對象獨立開來。靜態成員函數即使在類對象不存在的情況下也能被調用,靜態函數只要使用類名加范圍解析運算符?::?就可以訪問

靜態成員函數只能訪問靜態成員數據、其他靜態成員函數和類外部的其他函數。

靜態成員函數有一個類范圍,他們不能訪問類的 this 指針。您可以使用靜態成員函數來判斷類的某些對象是否已被創建

靜態成員函數與普通成員函數的區別:

  • 靜態成員函數沒有 this 指針,只能訪問靜態成員(包括靜態成員變量和靜態成員函數)。
  • 普通成員函數有 this 指針,可以訪問類中的任意成員;而靜態成員函數沒有 this 指針。
#include <iostream>using namespace std;class Line { public:static int count ;Line(){cout << "對象被建立" << endl ;count ++ ;}~Line(){cout << "對象被刪除" << endl ;}static int GetCount(){return count ;} }; // 初始化類 Line 的靜態成員 int Line::count = 0 ; void main() {// 在創建對象之前輸出對象的總數cout << "count is " << Line::GetCount() << endl ;Line line1 ;Line line2 ;// 在創建對象之后輸出對象的總數cout << "count is " << Line::GetCount() << endl ; }/* 輸出結果是 count is 0 對象被建立 對象被建立 count is 2 對象被刪除 對象被刪除*/

總結:

類的靜態成員在創建不同類的對象的時候,不會改變值(只會有一個副本)。類的靜態成員應該使用范圍解析運算符?::?來重新聲明靜態變量從而對它進行初始化。

類的靜態成員函數,在對象沒有被建立的時候也可以使用,只能訪問靜態成員(包括靜態成員變量和靜態成員函數)

?

?

?部分資料來源于菜鳥教程

?

?

總結

以上是生活随笔為你收集整理的C++——static的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。