class相关内容
思考时间 - 为什么要拆分文件? 正如标题所示,我遇到的最终问题是多重定义链接器错误。我实际上解决了问题,但我没有以正确的方式解决问题。在开始之前,我想讨论将类文件拆分为多个文件的原因。我试图把所有可能的情况在这里 - 如果我错过任何,请提醒我,我可以进行更改。希望以下是正确的: 原因1 要节省空间: 你有一个文件包含所有类成员的类的声明。您在此文件(或#pragma一次)上放置
..
我想知道是否有理由不能在声明中初始化成员。 class Foo { int Bar = 42; // this is invalid }; 等同于使用构造函数初始化列表。 class Foo { int Bar; public: Foo():Bar(42){} } $ b b 我个人的理解是,上面的例子更加表达和有意。此外,这
..
在C ++中什么时候应该使用structs而不是类,反之亦然?我发现自己使用结构体,当一个成熟的类管理一些信息似乎过分,但想表明包含的信息都是相关的。我想知道什么是一些很好的指导方针,以便能够告诉何时比另一个更合适? 编辑: 在阅读材料时找到这些链接在提交问题后,显示的堆栈溢出相关: 从技术上讲,两者之间的唯一区别是结构是public的:默认情况下和类是private: p>除
..
我有一个模板化类,像这样: template myVector; public: / * 构造函数+这里的一系列成员函数 * / } 我想添加只有一个成员函数,它只适用于一个给定类型的T。它是可能做到这一点,而不必专门化该类并重新实现所有其他
..
我注意到一个结构体继承自一个类,我停下来思考它。 .. 首先,我在C ++手册中没有看到我研究的结构可以继承自另一个结构: struct A {}; struct B:public A {}; 我猜在这种情况下,struct B继承了stuct A中的所有数据。在结构中声明公共/私有成员? 但我注意到: class A {}; stru
..
这真的是一个良好的形式/最佳实践的问题。我使用C ++中的structs来形成基本上保存数据的对象,而不是使用一堆除了获取/设置值的访问器方法。例如: struct Person { std :: string name; DateObject dob; (...) }; 如果你想象另外20个变量,把它写成私有成员和40-是一个痛苦的管理,似乎是浪费我。
..
假设我们需要在我们的项目中只有一个类的一个实例。有几种方法可以做。 我想比较。 2)完全静态类(所有方法和成员是静态的)。 根据我的理解,区别如下: a)未定义跨不同单元的静态成员的初始化顺序。 所以,完全静态成员初始化不能使用来自其他模块的任何静态成员/函数。单例没有这个问题。 b)我们必须处理单线程的getInstance()的线程。但是,完全静态类没有这个问题
..
这是一个后续问题。 在上一个问题,@ JohannesSchaub-litb说,以下代码不完全符合标准: class {int i; }; //未命名类定义。 §9/1允许这个! ,然后他添加了 在语法上是有效的,它打破了这样的规则,即这样的类必须至少在它的封闭范围中声明一个名称。 $ b b 我真的不明白这一点。他在说什么名字?
..
我想创建两个类,每个类包含另一个类类型的对象。我该怎么办?如果我不能这样做,是否有解决方法,像每个类包含一个指针到其他类类型?非常感谢! 这里是我有的: 档案: bar.h / p> #ifndef BAR_H #define BAR_H #include“foo.h” { public: foo getFoo(); protected: foo f; }
..
有没有办法隐藏C ++类的私人数据成员远离其用户,在cpp文件? 解决方案 我们将私有成员作为实现的一部分,看起来有点落后。 请参阅 http://www.gotw.ca/gotw/024.htm http://www.gotw.ca/gotw/028.htm http://herbsutter.com/gotw/_100/ (针对C ++ 11更新)
..
我惊讶地意外地发现以下作品: #include int main(int argc,char ** argv) { struct Foo { Foo(Foo& bar){ std :: cout
..
可能重复: 我创建了一个名为Kwadrat的类三个int字段内。代码块给了我一个建议,我可以通过 :: ,。和 - > 。箭头是唯一的工作,但为什么?这三个之间有什么区别? #include using namespace std; class Kwadrat { public: int val1,val2,val3; Kwadrat(i
..
自从我做C ++以来,我花了很长时间,我遇到了一些麻烦的类引用彼此。 现在我有类似的: ah class a { public: a(); bool skeletonfunc(b temp); }; bh class b { public: b(); bool skeletonfunc(a temp); };
..
我已阅读过相关问题,例如 this 和
..
所以我有这个复杂的类,我想有一个二维数组的复数,这是代码的一部分,而不是所有的代码 class Complex { public: / * construction / destruction * / Complex(double r,double i){this-> r = r; i = i; } Complex(){r = 0.0; i = 0.0; } 〜Complex
..
我试过这段代码: class A { virtual void foo ; }; class B { virtual void foo()= 0; }; class C:public A,public B { // virtual void A :: foo(){} // virtual void B :: foo ){} virtual
..
好吧,我有一个很简单的任务。 我有两个类Person的构造函数: Person(const string& const string& const string&); Person(const string& const string& const string& const string&); 我有4个默认值 这些都将是默认构造函数?是 解
..
如何将此实例作为参数传递给函数? class { public: void foo(); } bar; 我必须为课程命名吗? 没有将类的副本转换为私有。 所以,如果有的话,怎么可能呢? 解决方案 p>也许这将是更好,如果你明确你想做什么。为什么要创建一个未命名的类?它是否符合接口?未命名的类是相当有限的,它们不能用作函数的参数,它们不能用作模板类型
..
Hallo, 在C ++中有一些简单的方法来告诉(在编译时)类/ struct是否没有数据成员? 例如 struct T {}; 我的第一个想法是比较 sizeof = 0 ,但这总是至少为1。 显然的答案是看看代码, $ p 解决方案 您可以从另一个空类派生此类,并检查 sizeof (OtherClass)== 1 。 Boost在其 is_empty 类型特征
..
在初始化变量之前调用父类构造函数,还是编译器首先初始化该类的变量? 例如: class parent { protected: int a; public: parent():a(123){}; }; class child:public parent { int b; public: //问题:父构造函数在init b之前完成? child():b(
..