加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C静态类

发布时间:2020-12-16 10:20:17 所属栏目:百科 来源:网络整理
导读:我有一堆函数,我想放在一个单独的命名空间或类中.在这两个中,哪个更好?如果是后者,我应该怎么做呢?我的意思是,我没有任何实例成员,所以我应该将构造函数指定为私有吗?还是删除它? 无论哪种方式,它会看起来像这样给你一个想法: myproject::foo::f() 解决
我有一堆函数,我想放在一个单独的命名空间或类中.在这两个中,哪个更好?如果是后者,我应该怎么做呢?我的意思是,我没有任何实例成员,所以我应该将构造函数指定为私有吗?还是删除它?

无论哪种方式,它会看起来像这样给你一个想法:

myproject::foo::f()

解决方法

C命名空间和类都可以包含函数和其他类型,但行为中存在一些关键差异.您必须决定哪种情况最适合您的特定情况.

>类可以是模板化的,命名空间也不能.这提供了一种将一组模板参数传递给整组函数和其他类型的方法.结合typedef,这可能非常强大.
>您可以使用命名空间xyz;将一组命名空间成员带入任何范围.可以继承类以使它们进入范围(如果没有实例成员则没有太大影响,由于空基础优化,但是静态成员可以在没有限定的情况下使用),但这仅适用于其他类.自由函数必须明确限定对类成员的所有访问.
>命名空间参与依赖于参数的查找,而父类的成员则不参与.

如果您想使用继承类的技巧来提供模板参数并获得对其静态成员的非限定访问权限,那么您应该将构造函数和析构函数保留为默认值和平凡值,而不是删除或使它们不可访问.在C 11中,您可以将构造函数标记为受保护和默认.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读