windows下的__s_onexit_pause關鍵字可以不用定義類直接就調用類的構造函數

文章內容是我自己遇到的問題總結出來的,不一定正確,望指正。

我定義一個類,並且在其後添加__s_onexit_pause關鍵字,那麼程序會自動運行類的構造函數。如下代碼:

class OnApp {
	public:
		OnApp() {
			// Initialize Winsock 2.2
			WSADATA wsaData;
			int err = WSAStartup(MAKEWORD(2, 2), &wsaData);
			cout << "******************" << endl;
			cout << "出書畫" << endl;
			if (err) {
				std::cout << "WSAStartup() failed with error: %d" << err;
			}
		}
		//void test() { cout << "444444" << endl; }
		~OnApp() {
			system("pause");
			//cout << ""
			WSACleanup();
		}
} __s_onexit_pause;//這裏添加了__s_onexit_pause關鍵字

int main(int argc, char* argv[]) {
	int a = 4;
	return 0;
}

運行結果如下,可以看出程序是沒有經過創建對象就調用了構造函數。

******************
出書畫

如果沒有添加這個關鍵字的話則不會。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章