文章內容是我自己遇到的問題總結出來的,不一定正確,望指正。
我定義一個類,並且在其後添加__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;
}
運行結果如下,可以看出程序是沒有經過創建對象就調用了構造函數。
******************
出書畫
如果沒有添加這個關鍵字的話則不會。