c++静态成员变量使用前必须初始化,那么下面这个例子为什么不用初始化?
生活随笔
收集整理的這篇文章主要介紹了
c++静态成员变量使用前必须初始化,那么下面这个例子为什么不用初始化?
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
有三個(gè)文件:
student.h文件
#include <string> #include <iostream> using namespace std; const int MAX_NAME_SIZE = 30; class Student{public:Student(const char * pszName);~Student();public:static void PrintfAllStudents();private:char m_name[MAX_NAME_SIZE];Student *next;Student *prev;static Student *m_head; //這里為什么后面沒(méi)看到它的初始化語(yǔ)句??};function.cc文件
#include <iostream> #include <string> #include <string.h> #include "student.h" using namespace std; Student::Student(const char *pszName){strcpy(this->m_name,pszName);this -> next = m_head;this -> prev =NULL;if(m_head != NULL)m_head -> prev = this;m_head = this;}Student::~Student(){if(this == m_head){m_head = this-> next;}else{this -> prev->next = this->next;this -> next -> prev = this -> prev;} } void Student::PrintfAllStudents() {for(Student *p =m_head;p!= NULL;p=p->next)printf("%s\n",p->m_name);} Student *Student::m_head = NULL;main.cc文件
#include <iostream> #include <string> #include "student.h" using namespace std;int main() {Student studentA("AAA");Student studentB("BBB");Student studentC("CCC");Student studentD("DDD");Student student("MoreWindows");cout << "begin to print : " << endl;Student::PrintfAllStudents();return 0; }為什么沒(méi)有看到 Student的靜態(tài)類(lèi)型成員Student *m_head的初始化語(yǔ)句?但是依然便以正確
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的c++静态成员变量使用前必须初始化,那么下面这个例子为什么不用初始化?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c++之静态成员详细介绍
- 下一篇: 关于c++静态成员函数