在函数内部使用static关键字声明创建对象是指在函数内部声明一个静态变量,该变量的类型是一个类的对象。在函数调用结束后,该静态变量仍然存在,下次再次调用该函数时,仍然使用上一次调用时创建的对象。

例如,下面的示例中,在函数内部使用static关键字声明创建了一个静态对象obj。第一次调用函数时,会创建一个新的对象,然后在第二次调用函数时,会使用上一次创建的对象。

#include <iostream>

class MyClass {
public:
    MyClass() {
        std::cout << "Constructor called" << std::endl;
    }

    ~MyClass() {
        std::cout << "Destructor called" << std::endl;
    }
};

void myFunction() {
    static MyClass obj;
}

int main() {
    myFunction(); // 第一次调用函数
    myFunction(); // 第二次调用函数

    return 0;
}

输出结果:

Constructor called
Destructor called
Constructor called

可以看到,第一次调用函数时,会创建一个新的对象,然后在第二次调用函数时,不会再次创建新的对象,而是继续使用第一次创建的对象

在函数内部使用static关键字声明创建对象

原文地址: https://www.cveoy.top/t/topic/iLML 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录