class相关内容

将C ++类代码分成多个文件,有什么规则?

思考时间 - 为什么要拆分文件? 正如标题所示,我遇到的最终问题是多重定义链接器错误。我实际上解决了问题,但我没有以正确的方式解决问题。在开始之前,我想讨论将类文件拆分为多个文件的原因。我试图把所有可能的情况在这里 - 如果我错过任何,请提醒我,我可以进行更改。希望以下是正确的: 原因1 要节省空间: 你有一个文件包含所有类成员的类的声明。您在此文件(或#pragma一次)上放置 ..
发布时间:2016-10-14 12:51:10 C/C++开发

Structs与C ++中的类

在C ++中什么时候应该使用structs而不是类,反之亦然?我发现自己使用结构体,当一个成熟的类管理一些信息似乎过分,但想表明包含的信息都是相关的。我想知道什么是一些很好的指导方针,以便能够告诉何时比另一个更合适? 编辑: 在阅读材料时找到这些链接在提交问题后,显示的堆栈溢出相关: 从技术上讲,两者之间的唯一区别是结构是public的:默认情况下和类是private: p>除 ..
发布时间:2016-10-14 12:35:52 C/C++开发

C ++:结构体可以继承一个类吗?

我注意到一个结构体继承自一个类,我停下来思考它。 .. 首先,我在C ++手册中没有看到我研究的结构可以继承自另一个结构: struct A {}; struct B:public A {}; 我猜在这种情况下,struct B继承了stuct A中的所有数据。在结构中声明公共/私有成员? 但我注意到: class A {}; stru ..
发布时间:2016-10-14 12:06:32 C/C++开发

带有成员函数的C ++结构与带有公共变量的类

这真的是一个良好的形式/最佳实践的问题。我使用C ++中的structs来形成基本上保存数据的对象,而不是使用一堆除了获取/设置值的访问器方法。例如: struct Person { std :: string name; DateObject dob; (...) }; 如果你想象另外20个变量,把它写成私有成员和40-是一个痛苦的管理,似乎是浪费我。 ..
发布时间:2016-10-14 12:04:43 C/C++开发

C ++单例与完全静态对象

假设我们需要在我们的项目中只有一个类的一个实例。有几种方法可以做。 我想比较。 2)完全静态类(所有方法和成员是静态的)。 根据我的理解,区别如下: a)未定义跨不同单元的静态成员的初始化顺序。 所以,完全静态成员初始化不能使用来自其他模块的任何静态成员/函数。单例没有这个问题。 b)我们必须处理单线程的getInstance()的线程。但是,完全静态类没有这个问题 ..
发布时间:2016-10-14 12:04:22 C/C++开发

为什么class {int i; };是不是完全符合标准?

这是一个后续问题。 在上一个问题,@ JohannesSchaub-litb说,以下代码不完全符合标准: class {int i; }; //未命名类定义。 §9/1允许这个! ,然后他添加了 在语法上是有效的,它打破了这样的规则,即这样的类必须至少在它的封闭范围中声明一个名称。 $ b b 我真的不明白这一点。他在说什么名字? ..
发布时间:2016-10-14 12:02:07 C/C++开发

隐藏私人数据成员? (C ++)

有没有办法隐藏C ++类的私人数据成员远离其用户,在cpp文件? 解决方案 我们将私有成员作为实现的一部分,看起来有点落后。 请参阅 http://www.gotw.ca/gotw/024.htm http://www.gotw.ca/gotw/028.htm http://herbsutter.com/gotw/_100/ (针对C ++ 11更新) ..
发布时间:2016-10-14 11:51:13 C/C++开发

我如何声明相互引用的类?

自从我做C ++以来,我花了很长时间,我遇到了一些麻烦的类引用彼此。 现在我有类似的: ah class a { public: a(); bool skeletonfunc(b temp); }; bh class b { public: b(); bool skeletonfunc(a temp); }; ..
发布时间:2016-10-14 11:29:31 C/C++开发

C ++程序中的堆栈溢出错误

所以我有这个复杂的类,我想有一个二维数组的复数,这是代码的一部分,而不是所有的代码 class Complex { public: / * construction / destruction * / Complex(double r,double i){this-> r = r; i = i; } Complex(){r = 0.0; i = 0.0; } 〜Complex ..
发布时间:2016-10-14 11:25:12 C/C++开发

两个构造函数,这是默认的?

好吧,我有一个很简单的任务。 我有两个类Person的构造函数: Person(const string& const string& const string&); Person(const string& const string& const string& const string&); 我有4个默认值 这些都将是默认构造函数?是 解 ..
发布时间:2016-10-14 11:24:30 C/C++开发

通过函数传递未命名的类

如何将此实例作为参数传递给函数? class { public: void foo(); } bar; 我必须为课程命名吗? 没有将类的副本转换为私有。 所以,如果有的话,怎么可能呢? 解决方案 p>也许这将是更好,如果你明确你想做什么。为什么要创建一个未命名的类?它是否符合接口?未命名的类是相当有限的,它们不能用作函数的参数,它们不能用作模板类型 ..
发布时间:2016-10-14 11:22:56 C/C++开发

有没有一种简单的方法来判断一个类/ struct是否没有数据成员?

Hallo, 在C ++中有一些简单的方法来告诉(在编译时)类/ struct是否没有数据成员? 例如 struct T {}; 我的第一个想法是比较 sizeof = 0 ,但这总是至少为1。 显然的答案是看看代码, $ p 解决方案 您可以从另一个空类派生此类,并检查 sizeof (OtherClass)== 1 。 Boost在其 is_empty 类型特征 ..
发布时间:2016-10-14 11:14:55 C/C++开发

在初始化变量之前是否调用父类构造函数?

在初始化变量之前调用父类构造函数,还是编译器首先初始化该类的变量? 例如: class parent { protected: int a; public: parent():a(123){}; }; class child:public parent { int b; public: //问题:父构造函数在init b之前完成? child():b( ..
发布时间:2016-10-14 11:12:26 C/C++开发