class相关内容

类继承自没有默认构造函数的类

现在我有一个类 A 继承自 B 和 B 没有默认构造函数。我试着创建一个 A 的构造函数,它具有与 B 的构造函数完全相同的参数,但我得到: 错误:没有匹配的函数调用'B :: B()' 注意: B :: B(int) 如何修复此错误? 解决方案 构造函数应如下所示: A (int i):B(i){} 冒号后的位表示“这个对象的B基类子对象 ..
发布时间:2016-10-14 11:08:27 C/C++开发

相互递归类

如何在C ++中实现相互递归的类?像: / * * Recursion.h * * / #ifndef RECURSION_H_ #define RECURSION_H_ class Class1 { Class2 * Class2_ptr; public: void Class1_method() { // ... (* Class2_p ..
发布时间:2016-10-14 11:07:53 C/C++开发

类的C ++运行时知识

我有多个类都派生自一个基类,现在一些派生类不会被编译,这取决于平台。我有一个类,允许我返回一个基类的对象,但现在所有的派生类的名称已经硬编码。 有办法 解决方案确定哪些类已经被编译,在运行时优选地,以便我可以删除链接并改为提供动态可加载的库。 您在寻找C ++运行时类注册吗?我找到了以下链接: http://meat.net/2006 / 03 / cpp-runtime-clas ..
发布时间:2016-10-14 10:53:41 C/C++开发

类连续数据

我有一个C ++类,它有四个私有浮点和一堆非静态公共函数,对这些数据进行操作。 是保证还是可能所以,四个浮点是连续的,没有填充。这将使类的大小为四个浮点,它的地址将是第一个浮点的。 解决方案 您的编译器。 您可以使用 #pragma pack(1) MSVC 和 gcc 或 #pragma pack 1 aCC 。 例如,假设 MSVC / gcc : #prag ..
发布时间:2016-10-14 10:52:29 C/C++开发

C ++类前向声明

当我尝试编译这个代码,我得到: 52 C:\Dev-Cpp \Projektyyy \ strategy \Tiles.h无效使用未定义类型struct tile_tree_apple 46 C:\Dev-Cpp \Projektyyy \strategy\ Tiles.h`struct tile_tree_apple'的向前声明 我的代码的某些部分: cla ..
发布时间:2016-10-14 10:52:09 C/C++开发

向前声明基类

我正在尝试创建不包含很多其他文件的正确头文件。 (要保持它们的清洁,以加快编译时间,...) 我在执行此操作时遇到两个问题: 1 - 基类上的转发声明无效。 B类; A类:public B { // ... } 2 - STD类的转发声明无效。 namespace std { class string; } ..
发布时间:2016-10-14 10:46:59 C/C++开发

你能用数字开始一个类名吗?

在 C ++ 中,是否可以使用数字启动类名称?例如, 模板 class 2DArray { public: // 1D ARRAY CLASS class 1DArray { public: 1DArray(){Create(); } 1DArray(iterator arr):array1d_(arr){} explicit 1DArray(si ..
发布时间:2016-10-14 10:36:59 C/C++开发

结构与类的性能

我想知道是否有C ++中的类和C风格结构的性能比较与g ++ -O3选项。是否有任何基准或比较。我一直认为C ++类比结构更重,可能更慢(编译时对我来说不是很重要,运行时更重要)。我将实现一个B树,我应该实现它与类或结构的性能。 解决方案 在运行时级别上,C ++中的结构体和类之间没有区别 。 因此,您的代码中是否使用 struct A 或 A类 。 其他事情,使用一些功能,如构造 ..
发布时间:2016-10-14 10:32:41 C/C++开发

如何检查对象的类型是否是C ++中的特定子类?

我一直在使用typeid(),但我不知道如何问,如果该类型是另一个类的子类(顺便说一下,是抽象的) 解决方案 你真的不应该。如果你的程序需要知道一个对象是什么类,这通常表示设计缺陷。看看你是否可以使用虚拟函数获得所需的行为。 我假设你有这样的情况: class Base; class A:public Base {...}; class B:public Base { ..
发布时间:2016-10-14 10:23:01 C/C++开发

在C ++中访问静态类变量?

重复: C ++:未定义的引用静态类成员 如果我有一个类/ struct这样 //头文件 class Foo { public: static int bar; int baz; int adder(); }; //实现 int Foo :: adder() { return baz + bar; } 这不起作用。我得到一个 ..
发布时间:2016-10-14 10:16:49 C/C++开发

C ++中的谓词是什么?

解决方案 谓词是一个C ++函数,返回布尔值或实例对象有bool operator()成员。 一元谓词需要一个agrument,binary-two等。 问题谓词的示例可以回答一个特定的算法: 这是我们正在寻找的元素吗? 两个参数中的第一个以我们的顺序排列。 参数等于? 几乎所有 STL算法将谓词作为最后一个参数。 您可以使用标准,自己的和谓词创建类来构造新的谓词( ..
发布时间:2016-10-14 10:16:23 C/C++开发

C ++类/ struct成员的默认可见性

在C ++中,为什么private是类成员的默认可见性,而对于结构体是public的? 解决方案 作为C的超集。结构体从C继承,其成员的语义是公共的。有很多C代码存在,包括需要使用C ++的库,它们使用结构体。类是在C ++中引入的,为了符合OO封装哲学,它们的成员默认是私有的。 ..
发布时间:2016-10-13 12:16:01 C/C++开发

以程序方式检索c ++类名

我想知道是否可能在C ++中以字符串形式检索类的名称,而不必将其硬编码为变量或getter。我知道没有一个信息实际上在运行时使用,因此它不可用,但有什么宏可以创建这个功能吗?感谢。 编辑:可能有帮助的是,我实际上正在尝试检索派生类的名称,并且我使用Visual C ++ 2008 Express Edition。 解决方案 您可以使用RTTI: #include ..
发布时间:2016-10-13 12:02:57 C/C++开发

复制构造函数不调用?

据我所知,在下列情况下调用复制构造函数: 1当实例化一个对象并使用另一个对象的值初始化它时 2当传递一个对象按值。 3当一个对象通过值从函数返回时 我决定把这个测试,我做这个小程序测试这个(每次都有消息一个构造函数被调用,它似乎适用于前两种情况,但不适用于第三种情况。我想知道我的错误,欢迎创意。 #include 使用命名空间std; ..
发布时间:2016-10-13 11:54:46 C/C++开发