gpt4 book ai didi

c++ - 访问一个类的成员。此类的对象从未实例化。所有成员都是静态类型

转载 作者:太空狗 更新时间:2023-10-29 20:29:17 25 4
gpt4 key购买 nike

我有一个工作代码库,其中有一个名为 Tabs 的类。此类的所有方法和变量都定义为静态的。我知道类的静态成员由该类对象的所有实例共享。此类用于将某种类型的数据存储到集合中。许多不同的文件使用成员函数 Tabs::find() 和 Tabs::Insert() 而从未实例化类 Tabs 的对象。我试图了解它是如何工作的以及这种编程技术被称为什么。谢谢。

最佳答案

static 数据成员在 main 进入之前初始化,这就是访问它们的原因。它们驻留在静态内存中,而不是动态或自动的。

只有静态成员的类类似于具有全局变量和函数,但组合在一起。它本身不是一种编程技术。这只是全局变量。

//globals.h
class Globals
{
static int x;
public:
static int getX() {return x;}
};

//globals.cpp
#include "Globals.h"
int Globals::x = 1;

//main.cpp
#include "Globals.h"
//x is initialized before call to main
int main()
{
int x = Globals::getX();
}

关于c++ - 访问一个类的成员。此类的对象从未实例化。所有成员都是静态类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10436969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com