declaration相关内容

在类本身中创建一个类的实例

我是C ++的新手,并有一个问题: 比较以下代码: class Node { public: int data; Node * x; }; 和 class Node { public: int data; Node x; }; 我知道代码的第二部分不能通过编译。但我想知道原因。 它是与内存分配还是语法规范相关 ..
发布时间:2016-10-23 22:58:50 C/C++开发

是类型name = name;在C ++中有用吗?

C ++中允许使用以下代码: int a = a; 或 Type name = name; 两者都导致未初始化的对象被自身初始化,这往往导致未定义的行为。 这样的代码是否需要或合理?这些代码是否有用? 解决方案 您可以在其初始化器中使用变量的名称。代码 类型name = name; 可能没有用,但代码 ..

C ++变量声明和初始化规则

请考虑以下方式声明和初始化 C 类型的变量: C c1; C c2; c2 = C(); C c3(C()); C c4 = C(); 这些都是完全相同的,或者其中一些根据确切的定义 C ? (假设它有公共默认和复制构造函数)。 解决方案 这些意思是: C c1; //默认构造函数 C c2; // default co ..
发布时间:2016-10-23 20:38:08 C/C++开发

前瞻性声明循环依赖

我有两个类,Entity和Level。两者都需要访问彼此的方法。因此,使用#include,出现循环依赖的问题。因此为了避免这种情况,我试图在Entity.h中转发declare Level: class Level {}; 但是,由于Entity需要访问Level中的方法,所以它不能访问这些方法,知道他们存在。有没有办法解决这个问题,而不重新声明Entity中的大多数级 ..
发布时间:2016-10-23 20:17:41 C/C++开发

为什么C ++不允许在声明之前使用函数?

好的,我知道这看起来像是一个重复的为什么函数需要在使用之前声明?,但是似乎现有的答案不能完全解决所有的细节问题。 我知道C ++最初是在80年代设计的,所以它可以在一个单一的传递,因为计算机是缓慢的翻译。好。但最近的标准是在2011年发布的,所以我不知道为什么C ++编译器不能做现在需要多遍。它仍然会伤害性能,是的,但只有当它实际上成为必要。因此,以下内容仍然只需要一次传递: voi ..
发布时间:2016-10-22 19:10:18 C/C++开发

在C ++中声明/定义类范围常量的位置?

我很好奇C ++中不同常量声明和定义选项的优点/缺点。最长的时间,我刚刚在头文件的顶部声明他们在类定义之前: // .h const int MyConst = 10; const string MyStrConst =“String”; class MyClass { ... }; 这会污染全局命名空间(我知道这是一件坏事,为什么它是坏的原因列表),常量 ..
发布时间:2016-10-22 17:20:23 C/C++开发

链接和名称管理如何工作?

让我们来获取这段代码示例 // header struct A {}; struct B {}; struct C {}; extern C c; // code A myfunc(B& b){A a; return a; } void myfunc(B& b,C& c){} C c; 让我们从代码段开始逐行。 当编译器看到第一个my ..
发布时间:2016-10-20 23:55:07 C/C++开发