<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      在程序打開時執行函數

      [摘要]有一些應用程序需要調用啟動函數來分配 main() 函數開始執行時必須提供的資源。一個很好的例子是記錄程序活動的一個日志實用工具。這個日志服務必須在 main() 之前開始,這樣它才能記錄程序的開始。   為了保證這樣可行,可以在全局對象的構造器中調用初始化函數。全局對象概念上是在 main() ...
      有一些應用程序需要調用啟動函數來分配 main() 函數開始執行時必須提供的資源。一個很好的例子是記錄程序活動的一個日志實用工具。這個日志服務必須在 main() 之前開始,這樣它才能記錄程序的開始。
        為了保證這樣可行,可以在全局對象的構造器中調用初始化函數。全局對象概念上是在 main() 開始之前構造的。例如:

        class Init
        {
        public:
         Init()
         {
         log_activity();
         }
        };

        Init init; // global instance
        int main()
        {
         activity_report* rep=read_log();
         //..
        }
        在 main() 開始執行時,init 已經構造好了。在它的構造過程中,它調用了函數log_activity()。因此,main() 在開始執行時可以安全地立即從日志文件中讀取數據。
        這種方法還被標準模板庫(Standard Template Library)廣泛采用。例如,iostream對象cout和cin都是在 main() 之前構造的。C++ 如何保證全局對象在 main() 之前構造的呢?在大多數實現中,內核運行特殊的啟動代碼,這個特殊的啟動代碼在啟動 main() 之前完成所有的初始化。


      日韩精品一区二区三区高清