static 静态成员变量和静态函数 C++
生活随笔
收集整理的這篇文章主要介紹了
static 静态成员变量和静态函数 C++
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1, static 成員變量實現了同類對象間信息共享。
2, static 成員類外存儲, 求類大小, 并不包含在內。
3, static 成員是命名空間屬于類的全局變量, 存儲在 data 區。 ?不在堆棧中。
4, static 成員只能類外初始化。!!! 無論是private 還是public
5, 可以通過類名訪問(無對象生成時亦可), 也可以通過對象訪問。
?
1, 靜態成員函數的意義, 不在于信息共享, 數據溝通, 而在于管理靜態數據成員, 完
成對靜態數據成員的封裝。
2, 靜態成員函數只能訪問靜態數據成員。 原因 : 非靜態成員函數, 在調用時this 指
針被當作參數傳進。而靜態成員函數屬于類, 而不屬于對象, 沒有 this 指針。
?
#if 0 1, static 成員變量實現了同類對象間信息共享。 2, static 成員類外存儲, 求類大小, 并不包含在內。 3, static 成員是命名空間屬于類的全局變量, 存儲在 data 區。 不在堆棧中。 4, static 成員只能類外初始化。!!! 無論是private 還是public 5, 可以通過類名訪問(無對象生成時亦可), 也可以通過對象訪問。1, 靜態成員函數的意義, 不在于信息共享, 數據溝通, 而在于管理靜態數據成員, 完 成對靜態數據成員的封裝。 2, 靜態成員函數只能訪問靜態數據成員。 原因 : 非靜態成員函數, 在調用時this 指 針被當作參數傳進。而靜態成員函數屬于類, 而不屬于對象, 沒有 this 指針。#endif#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std;class Student { public:Student(int id,double score){m_id = id;m_score = score;count++;sum += score;}~Student(){count--;sum -= m_score;}//靜態成員函數只能訪問靜態數據成員。static double getCount(){return count;}static double getAverage() {return sum / count;}//初始化必須在類外部 //因為是公有成員,類外可以直接使用 Student::count // static int count;//記錄學生總數 // static double sum;//記錄學生總分private:int m_id;double m_score;//初始化必須在類外部//因為是私有成員,類外不能直接使用static int count;//記錄學生總數static double sum;//記錄學生總分};//初始化必須在類外部 int Student::count = 0; double Student::sum = 0;int main() {Student s1(10, 80);Student s2(11, 90);Student s3(12, 100);cout << "學生個數是: " << Student::getCount() << endl;cout << "平均分是: " << Student::getAverage() << endl;//如果count和sum在public中,可以直接使用//cout << "學生個數是: " << Student::count << endl;//cout << "平均分是: " << Student::sum/Student::count << endl;}?
總結
以上是生活随笔為你收集整理的static 静态成员变量和静态函数 C++的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: new、delete、malloc、fr
- 下一篇: 数据结构——线性表:顺序表、单向链表、循