首页 / 知识
关于oop:如何在C ++中创建静态类?
2023-04-12 02:31:00

How do you create a static class in C++?如何在C++中创建静态类?我应该可以做一些像:
假设我创建了 如果你正在寻找一种将"静态"关键字应用到类中的方法,比如你可以在C语言中使用,那么你就不可能不使用托管C++。 但从示例的外观来看,您只需要在BitParser对象上创建一个公共静态方法。像这样: BitParser
位PARSPR.CPP
可以使用此代码以与示例代码相同的方式调用方法。 希望有帮助!干杯。 马特考虑价格的解决方案。 </P >好。
什么是你想要的冰,表示在C++的语义来把你的功能(它是一个功能)在一个命名空间。 </P >好。 编辑:2011年11月11日 有没有"静态冰级"的C + +。在最近的概念,会用一只类的静态方法。例如: </P >好。
但你必须记得,那是"静态类"是黑客的Java类的面颊部语言(例如C #)那是不能要有非成员函数,所以他们的行动,而不是对他们有作为静态内部类的方法。 </P >好。 在C++中,什么是你真的想要的是一个非成员函数,你将在一个命名空间:DECLARE </P >好。
这是为什么呢? C++的命名空间,比冰更强大的"Java类的静态方法"的模式,因为: </P >好。
结论:不要拷贝/粘贴/ C,Java #’s型C + +。在Java / C #,强制型的冰。但在C + +,它的冰浴的风格。 </P >好。 编辑2010年06月10 有一个说法是把你的静态方法,因为有时,需要使用一对一私人的静态成员变量。 </P >好。 在disagree somewhat节目,为下面的: </P >好。 "静态的私人成员"。
第一,myglobal冰被称为myglobal因为这仍然是一个全球性的私人活动。A看《clarify CPP源会是: </P >好。
在一系列的事实,无功能的BARC不能访问foo myglobal表明:一个好的事情从一encapsulation观点…………………这很酷,因为有人在看着HPP不会问A(除非resorting到接入到破坏):myglobal foo。 </P >好。 但如果你看它closely,你会发现,它是一个colossal错误:不只是你的私人的变动要求必须申报的HPP(",可见到全世界的存在,尽管存在私人),但你必须在同一个DECLARE HPP所有(As,把所有的功能是将)授权的访问信息。!!!!!!!!!!!!!! </P >好。 SO利用私人静态成员的冰状的在外的诞生与发展战略tattooed你的恋人对你的皮肤:没有一个授权的冰,冰的触摸,但每一个人能对PEEK实习生。和奖励:每一个人能有个"授权"的名字即插即用和你的厕所。 </P >好。 匿名名称将具有做私人事情的优势。 okay. First,the HPP header okay.
只要你确定你还活着:巴尔博或神话全球的宣言没有用处。这意味着没有人阅读主人知道巴拉背后隐藏着什么 okay. Then,the CPP: okay.ZZU1 正如你所看到的那样,所谓的"静态类"宣言、食品和食品仍然可以进入神话。但没有人可以。没有人会知道食物和神话甚至存在! okay. 不如"静态类"在脖子上随身携带地址簿在她的皮肤上纹上"匿名"的名称空间完全封闭,看上去更容易封闭。 okay.这是真的吗? Unless the users of your code are saboteurs(I'll let you,a s an exercise,find how one can access to the private part of a public class using a dirty behaviour-undefined hack…),what's okay. 但是,如果你需要增加一个"私人功能",并能进入私人成员,那么你必须通过改变头部向全世界宣布,这是一个矛盾,正如我所关心的那样:如果我改变我的代码(CPP部分),那么界面(HPP部分)就不应改变。Quoting Leonidas:"这是封装!" okay.2014-09-20版 当静态类别的方法实际优于非成员函数的名称空间时? okay. When you need to group together functions and feed that group to a template: okay.
因为,如果一个类别可以是一个模板参数,一个名称空间不能。 okay.好吧 还可以在命名空间中创建自由函数: 在BitParser
在bitparser.cpp中
一般来说,这是编写代码的首选方法。当不需要对象时,不要使用类。
静态类只是编译器的一只手,握着你的手,阻止你编写任何实例方法/变量。 如果你只写一个普通类,没有任何实例方法/变量,那是一样的,这就是你在C++中所做的。 在C++中,你要创建一个类的静态函数(不是静态类)。
然后,您应该能够使用bitparser::getbitat()调用函数,而无需实例化我认为是所需结果的对象。 我能写点像 不,根据C++ 11 N337标准草案附录C7.1.1:
和 通过浏览附录A中的语法树,可以得出相同的结论。 有趣的是, 你可以在C++中拥有一个静态类,正如前面提到的,静态类是一个没有任何实例化的对象的类。在C++中,可以通过将构造函数/析构函数声明为私有来获得。最终结果相同。 在托管C++中,静态类语法是:
…迟做总比不做好… 与其他托管编程语言不同,"静态类"在C++中没有任何意义。您可以使用静态成员函数。 这类似于C++在C++中的实现方式。 在c file.cs中,在公共函数中可以有私有var。当在另一个文件中时,您可以通过调用具有以下函数的命名空间来使用它:
下面是如何在C++中实现同样的功能: SharedModule
共享模块.cpp
其他文件
其他文件
正如这里已经注意到的,在C++中实现这一点的一个更好的方法可能是使用命名空间。但是由于这里没有人提到EDCOX1的4个关键字,所以我发布了一个直接等价于EcOX1的0个词,从C中看,在C++ 11或更后面是:
当使用这些类实现继承上的组合时,名称空间对于实现"静态类"可能不太有用。命名空间不能是类的朋友,因此不能访问类的私有成员。
|
最新内容
相关内容
python如何在python导入tkinter
python如何在python导入tkinter,培训,标准,控件,应付自如,图形界面,实例,模块,以上,之后,消息,Tkinter是Python的标准GUI库。Python使用Tkintpython代码如何在命令行运行
python代码如何在命令行运行,代码,培训,路径,空格,文件,下面,以上,目录,更多,内容,我们在编写python代码时,可以在交互模式下运行代码,也可以用python整型对象是如何在内存中存储
python整型对象是如何在内存中存储的?,代码,培训,地址,位置,内存,开辟,整数,分配,存在,负数,在Python中整型对象所存储的位置是不同的,有一些python创建多线程的两种方法
python创建多线程的两种方法,培训,第一,代码,业务,方法,线程,函数,任务,演示,实例,当我们使用python编程的过程中需要多个输出的任务的话,为了python如何创建数值列表
python如何创建数值列表,数字,培训,代码,数据,列表,数值,函数,结果,实例,上述,python如何创建数值列表1、在数据可视化中,处理的几乎都是由数python实例创建销毁的函数整理
python实例创建销毁的函数整理,培训,实例,对象,方法,函数,之前,垃圾,初始化,类别,以上,python实例创建销毁的函数整理说明1、_new_在对象实例python如何创建操作页面
python如何创建操作页面,培训,方法,操作,页面,组件,实例,模块,按钮,界面,初始化,python如何创建操作页面说明Python自带tkinter模块,本质上是Gpythonpipenv创建环境
pythonpipenv创建环境,环境,项目,培训,版本,环境变量,目录,版本号,路径,新项目,以上,pythonpipenv创建环境1、可以通过以下方法在新项目目录python创建新线程有哪些方法
python创建新线程有哪些方法,培训,方法,线程,对象,测试,实例,以上,参数,教程,更多,python创建新线程有哪些方法1、方法(1)直接创建threading.如何在C中将函数作为参数传递?
如何在C中将函数作为参数传递?,如何在C中将函数作为参数传递?,传递函数,函数,参数传递,参数,How do you pass a function as a paramet关于xml:如何在Python中使用Xpath?
关于xml:如何在Python中使用Xpath?,关于xml:如何在Python中使用Xpath?,图书馆,网站,这个问题,陈旧,How to use Xpath in Python?什么是图关于asp.net mvc:如何在MVC中使用Ht
关于asp.net mvc:如何在MVC中使用HtmlHelper获取呈现的自定义ID,关于asp.net mvc:如何在MVC中使用HtmlHelper获取呈现的自定义ID,表单