class相关内容
我对c ++非常新,所以原谅我,如果我忽略了一些简单的东西。我有一个类Circle: class Circle:public Shape { protected: // string name ; 点对焦; float radius; private: public: virtual void calculateArea(); virtual void calcu
..
我正在阅读关于空基本优化(EBO)。阅读时,我脑海里浮现出以下问题: 使用Empty类作为基类的意义是什么? 在本文,我阅读: // S是空的 class struct T:S { int x; }; 请注意,我们没有丢失任何数据或 代码准确性:当您创建一个 类型为S的独立对象时, 对象的大小仍然是1(或更多)为 before;只有当S
..
根据C ++规范,以下两个类是否等同定义? class A { void f() { } }; class B { inline void f() { } }; 即,将“inline”限定符放在类定义中定义的成员函数中是否完全冗余? 关注问题:假设它是多余的,对于代码风格,保持“内联”标记是明智的,所以未来的开发人员意识到该函数应该
..
标题说。 以下是我的代码框架。 class CLASS { public: void A(); private: DWORD WINAPI B(LPVOID); }; void CLASS :: A() { DWORD(WINAPI CLASS :: * thread)(LPVOID)=& CLASS :: B; ... CreateThread(NU
..
假设我有一个类 A,B,C,... 的列表,它们都继承自 Base 。 我从用户那里得到一个字符串的类名,我想实例化正确的类并返回一个指针 Base 。 我想到使用以类名作为键的散列表,以及指向实例化正确类的函数的函数指针返回一个 Base * 。 但是,我想我可以在这里使用工厂模式 解决方案 这是一个非常简单的方法,以下是一个通用的工厂示例实施: templat
..
例如,假设我有一个类Temp: class Temp { public: int function1(int foo){return 1; } void function2(int bar){foobar = bar; } private: int foobar; }; 当我创建一个Temp类的对象时,我如何计算它需要多少空间,它在内存中表示(例如
..
我已经看到了很多const关键字在函数中的使用,所以我想知道它是什么。我在这里读了smth: http://duramecho.com/ComputerInformation/WhyHowCppConst.html 。 它表示使用const,因为函数“可以尝试更改对象中的任何成员变量”。如果这是真的,那么它应该在任何地方使用,因为我不希望任何成员变量以任何方式改变或改变。 class
..
我正在寻找一个hacky类型的解决方案以下问题: GCC 4.4+接受以下c ++ 0x代码: 枚举类my_enum { value1, value2 }; 这样允许使用: my_enum e = my_enum :: value1; 所有的铃声和口哨。我想让这个代码与MSVC 2010兼容,这样的效果是使用的语法不会改变。我在之
..
为什么有些运算符只能作为成员函数重载,其他非成员“自由”函数和其余的作为两个? 如何记住哪些操作符可以重载为什么(成员,自由或两者)? 解决方案 问题列出了三类运算符。我认为,把它们放在列表上有助于理解为什么有些操作符限制在可以重载的地方: 必须作为成员过载的操作员。这些是相当少的: 作业 operator =()。允许非成员分配似乎为操作者劫持分配打开了大门,例如通过重
..
对于什么可能是一个愚蠢的问题提前道歉,但在C ++类中,为什么闭尾括号后的分号?我经常忘记它,并得到编译器错误,从而失去时间。似乎对我有点多余,这是不可能的情况。人们是否真的做了 class MyClass { 。 。 。 } MyInstance; 编辑:从C兼容性的角度来看,和枚举,但由于类不是C语言的一部分,我想它的主要是在类似的声明构造之间保持一致性。
..
如何停止其他类继承的类。 解决方案 C ++ 11解决方案 在C ++ 11中,可以通过在定义中使用 final 关键字来封装类: class A final //注释在类名后面使用final关键字 { // ... } ; class B:public A //错误 - 因为类A被标记为final(sealed)。 {//所以A不能派生自。 // ... }
..
我有一个指向一个类的指针,它有一个指向多维数组的指针,但是当我需要或者将它设置为NULL时,我似乎不能从内存中删除它。 #define X 10 #define Y 10 struct TestClass { public: int * pArray [X] [Y]; }; //不同的尝试,无工作: delete Pointer_To_TestCla
..
我一直在寻找这个,我很惊讶,我没有找到任何东西。为什么不能使用使用声明继承基类构造函数并在派生类中添加重载?我使用Visual C ++ 2013,当默认构造 b 时,基类构造函数被忽略: 错误C2512:'B':没有适当的默认构造函数 struct A { A():a(10){} int a; }; struct B:A { 使用A :
..
所以,我在规范文件中有以下内容 #include 使用命名空间std: class MyStuff { private: $ b string name; fstream file; //其他东西 public: void setName(string); } 我在实现文件中也有
..
我有这样的代码: template struct MyStruct { T aType; U anotherType; }; 类IWantToBeFriendsWithMyStruct { friend struct MyStruct; //这里是什么正确的语法? }; 向模板提供友谊的正确语法是什么?
..
为什么自动类型扣除只对函数而不对类才可能? 解决方案 做 std :: make_pair : template(val); } EDIT: C ++编程语言,第三版“,第335页。Bjarne说: 注意类模板参数是 从来没有推导过。原因是由几个 构造
..
我刚从大学毕业,现在已经在C ++中工作了一段时间。我理解C ++的所有基础知识并使用它们,但我很难掌握更高级的主题,如指针和类。我读过一些书和教程,我理解他们的例子,但是当我看一些高级的现实生活中的例子,我不能想出来。这是杀了我,因为我觉得它让我从我的C ++编程提高到一个新的水平。有没有人有这个问题?如果是,你是如何突破呢? 有人知道任何书或教程,真正描述指针和类的概念吗? 或者也许一些示
..
这是一个在线C ++测试问题,已经完成。 #include using namespace std; class A { }; class B { int i; }; class C { void foo(); }; class D { virtual void foo(); }; class E {
..
可能的重复项: C / C ++ Struct与类 什么是C ++中的POD类型? $ b 在 C ++在实验室书中,第6章:类中,在访问说明符 在类定义中,成员和基类的默认 访问是 private。在结构体定义中, 的缺省值是public。 这是类和 结构之间唯一的 区别,尽管按照惯例,一些 程序员只为 POD 类使用struct 。 : 类和
..
在我正在开发的项目中,我有一个 Score 类,定义如下 score.h 。我试图重载它,所以,当执行
..