首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 類中定義 main 函數是什麼意思?

     編輯:關於C++

閱讀 Poco C++ 庫源碼時發現類中定義了 main 成員函數,初見困惑。經驗證,這只是普通成員函數碰巧命名為 main,與程序入口 int main() 無關。C++ 允許類成員函數名為 main,只需注意作用域區分。

示例代碼

#include <iostream>
#include <cstdio>
using namespace std;

class Test {
public:
    int main() { // 類的成員函數名為 main
        puts("Test::main hehe");
        return 0;
    }
};

int main() { // 全局程序入口
    Test x;
    x.main(); // 調用成員函數
    return 0;
}

輸出

Test::main hehe

說明

  • 類作用域內 main 只是普通函數名,無特殊含義。
  • 全局命名空間的 int main() 才是程序入口,由運行環境調用。
  • Poco 等框架常用此模式:框架類提供 main() 供用戶繼承覆寫,框架入口調用該虛函數實現「好萊塢原則」(Don't call us, we'll call you)。

所以看到類中有 main 不必驚訝,理解其上下文即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved