首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我们可以在C++中使用静态类吗?

我们可以在C++中使用静态类吗?
EN

Stack Overflow用户
提问于 2013-01-30 14:36:03
回答 4查看 6K关注 0票数 1

我只是想知道我们是否可以在C++中使用静态类。我的意思是,我们可以像static class foo一样在C++中将类声明为静态类吗?我知道在C++中我们可以有静态成员变量和静态成员函数,但我不确定静态类。

编辑:

我想问的是,类是静态的意味着什么。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-30 14:45:35

static关键字表示它所引用的对象在整个程序的生命周期中都存在。类定义只是构造对象的大纲。

考虑到这一点,您可能希望做一些事情,比如创建一个名称空间或创建一个singleton object,一个被设计为只有一个实例的类。

票数 7
EN

Stack Overflow用户

发布于 2013-01-30 14:43:49

static是一个存储类说明符。

  • 应用于变量,它指定对象的生命周期和可见性--在这种情况下,生命周期是整个程序的执行,并且可见性仅限于特定的翻译单元(通常是给定源文件)。
  • 应用于函数,它类似地指定对象的可见性--限制到类成员变量和函数的特定转换单元,它将变量定义为类的属性,而不是对象本身。

这就是半书呆子气的定义。问题是,您到底想在“静态类”的概念上附加什么语义?嵌套类自动具有类似静态的属性--它们是类的属性,而不是单个对象。如果您希望在外部作用域中声明的类具有类似静态的属性(即不会与跨不同转换单元的单一定义规则冲突),则可以使用anonymous namespace

票数 9
EN

Stack Overflow用户

发布于 2013-01-30 14:40:33

不能,但如果只用静态方法(和数据)创建一个类,基本上可以实现几乎相同的效果。请注意,C++中没有静态构造函数的概念。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14598056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档