C++ 静态对象
C++是一种编程语言,提供程序员控制系统内存和资源的能力。借助C++编程语言,我们可以开发高性能应用程序。在C++中,静态是一种方法类型,我们可以在编程语言中为变量、对象和函数创建一些空间,然后在整个程序的生命周期中分配给它们。一旦我们使用静态方法或变量,就不可能再对其进行修改。
在C++中,静态成员函数的初始化仅在整个程序中实现一次。编译器会一直保留所有变量,直到程序完成。C++程序允许程序员在函数内部或外部实现静态对象。在本文中,我们将学习不同类型的静态以及一些示例。
C++静态的语法
静态变量的语法如下所示。
static <datatype> <name_of_variable> = it's_value;
静态函数的语法如下。
static {
...
}
函数中的静态变量
静态变量是一种在程序的生命周期内为函数分配空间的变量类型。在C++中,一旦我们为静态变量分配空间,它将在程序的生命周期内占用该空间。
即使静态变量被多次调用,但为其分配的空间是固定的。并且在上一次调用中更新的变量值将被用于下一次调用静态函数。
在C++中,静态变量用于实现协程,用于存储函数上一次状态的值。在下面的示例中,我们将add作为静态变量,并在调用函数demo()时对其进行更新。
示例1
#include
#include
using namespace std;
void demo()
{
static int add = 0;
cout << add << "/";
add++;
}
int main()
{
for (int i=10; i>0; i--)
demo();
return 0;
}
输出:
类中的静态变量
我们知道静态变量在程序中只初始化一次,并且在程序中为变量分配一些空间。正因为如此,静态变量被每个不同的对象共享。不可能创建单个静态变量的不同副本。在下面的示例中,我们看到静态变量’j’被显式地使用。
示例2
#include
using namespace std;
class demo
{
public:
static int j;
demo()
{
};
};
int demo::j = 5;
int main()
{
demo pipe;
cout << pipe.j;
int p= pipe.j - 6;
cout << endl;
cout << p;
}
输出:
静态类对象
对象也可以声明为静态的,就像上面的示例中声明的变量一样。当我们将对象声明为静态时,它也具有程序的生命周期范围。在下面的示例中,对象’nex’作为静态对象在if块中被创建。
如果该对象被创建为非静态对象,则变量的范围仅限于if块内部,一旦if块的控制结束,析构函数就会被调用。为了避免这个问题,对象必须以静态方式创建,就像程序中所做的那样。这样一来,析构函数会在主函数结束时被调用。这只有因为静态对象及其在整个程序生命周期中的范围。
示例3
#include
using namespace std;
class main
{
int m = 0;
public:
main()
{
m = 0;
cout << "javatpoint\n";
}
~demo()
{
cout << "Data Science\n";
}
};
int main()
{
int o = 0;
if (o==0)
{
static demo nex;
}
cout << "Machine Learning\n";
}
输出:
结论
根据上述文章,我们可以了解C++中的静态概念。本文讨论了不同的静态方法,并提供了示例和它们的工作原理。这些示例将有助于理解这个概念,并根据程序员的需求使用它。