函数在main之前或之后运行

  • C++中,全局对象的构造函数在main之前运行,析构函数在main之后运行。
  • 类静态变量的初始化在main之前,静态函数不行。
class Base
{
public:
    Base()
    {
        std::cout<<"基类构造"<<endl;
    }
    ~Base()
    {
        std::cout<<"基类析构"<<endl;
    }
    static int get()
    {
        std::cout<<"get()"<<endl;
        return 55;
    }
    static int count;
}
// main.cpp
Base b;
int Base::count = Base::get();  //这里不能调静态函数,会报错
int main()
{
    std::cout<<"main "<<endl;
    return 0;
}

运行结果:

基类构造
get()
main
基类析构

猜你喜欢

转载自blog.csdn.net/yao5hed/article/details/81545489