declaration相关内容
挑战: 我的代码无法编译。你能弄清楚出了什么问题吗?它使我头痛一次。 // header 命名空间值{ extern std :: string address; extern int port; } // .cpp文件 std :: string :: values :: address =“192.0.0.1”; int :: values :: port
..
当我在模板类中专门化一个(静态)成员函数/常量时,我很难理解声明的含义。 以下是我要做什么的示例 - 直接从
..
我收到以下错误: ISO C ++禁止没有类型的ttTreeInsert的声明 ISO C ++禁止没有类型的ttTreeDelete的声明 ISO C ++禁止没有类型的ttTreePrint的声明 原型为int ttTree :: ttTreePrint()不匹配任何在类ttTree 候选人是:void ttTree :: ttTreePrint() 这是我
..
我想以这种方式声明一个列表的列表: List_vector >多元化 但是Eclipse强调了上述声明并给出了这个错误: 部分List_vector实施: 模板 class List_vector:public Linear_list { publi
..
之前 考虑有一个类和一个全局函数: usefulfuncts.hpp void dosome(int a,int b)throw (std :: exception); 这是 usefulfuncts.cpp void dosome(int a,int b)throw(std :: exception){ // ... }
..
之前 考虑有一个类和一个全局函数: usefulfuncts.hpp void dosome(int a,int b)throw (std :: exception); 这是 usefulfuncts.cpp void dosome(int a,int b)throw(std :: exception){ // ... $ b b}
..
在中型或甚至大型复杂项目中,模板声明和定义之间的分离对于减少编译时间是有用的。 但是,程序员错误可能导致无意识的行为改变, eg 示例: 模板专用化由于缺少声明而不可见。 ///////////////////// file A.hpp ////////// /////////// #include template
..
在中型或甚至大型复杂项目中,模板声明和定义之间的分离对于减少编译时间是有用的。 但是,程序员错误可能导致无意识的行为改变, eg 示例: 模板专用化由于缺少声明而不可见。 ///////////////////// file A.hpp ////////// /////////// #include template
..
我是C ++的新手,并有一个问题: 比较以下代码: class Node { public: int data; Node * x; }; 和 class Node { public: int data; Node x; }; 我知道代码的第二部分不能通过编译。但我想知道原因。 它是与内存分配还是语法规范相关
..
C ++中允许使用以下代码: int a = a; 或 Type name = name; 两者都导致未初始化的对象被自身初始化,这往往导致未定义的行为。 这样的代码是否需要或合理?这些代码是否有用? 解决方案 您可以在其初始化器中使用变量的名称。代码 类型name = name; 可能没有用,但代码
..
请考虑以下方式声明和初始化 C 类型的变量: C c1; C c2; c2 = C(); C c3(C()); C c4 = C(); 这些都是完全相同的,或者其中一些根据确切的定义 C ? (假设它有公共默认和复制构造函数)。 解决方案 这些意思是: C c1; //默认构造函数 C c2; // default co
..
我有两个类,Entity和Level。两者都需要访问彼此的方法。因此,使用#include,出现循环依赖的问题。因此为了避免这种情况,我试图在Entity.h中转发declare Level: class Level {}; 但是,由于Entity需要访问Level中的方法,所以它不能访问这些方法,知道他们存在。有没有办法解决这个问题,而不重新声明Entity中的大多数级
..
此代码的工作原理: std :: ifstream f(mapFilename.c_str std :: string s = std :: string(std :: istreambuf_iterator(f),std :: istreambuf_iterator()); ParseGameState(s); 其中 mapFilen
..
好的,我知道这看起来像是一个重复的为什么函数需要在使用之前声明?,但是似乎现有的答案不能完全解决所有的细节问题。 我知道C ++最初是在80年代设计的,所以它可以在一个单一的传递,因为计算机是缓慢的翻译。好。但最近的标准是在2011年发布的,所以我不知道为什么C ++编译器不能做现在需要多遍。它仍然会伤害性能,是的,但只有当它实际上成为必要。因此,以下内容仍然只需要一次传递: voi
..
以下程序是否根据c ++标准格式正确或格式不正确? 命名空间X {int i; } 命名空间Y {using X :: i; } int main(){using X :: i;使用Y :: i; } 我用不同的编译器得到不同的结果: MSVS:编译( http://webcompiler.cloudapp.net/ ) Clang:编
..
请参阅以下代码: #include 命名空间N { 模板 class C { public: void SwapWith(C& c) { using namespace std; //(1) // using std :: swap; //(2) swap(a,c.a); } private: in
..
template class Node {...}; int main { Node * ptr; ptr = new Node * ptr; 为什么在声明指针时必须指定类型我还没有创建类,为什么编译器必须知道它将指向什么
..
我不明白以下代码示例的作用及其效果: #include
..
我很好奇C ++中不同常量声明和定义选项的优点/缺点。最长的时间,我刚刚在头文件的顶部声明他们在类定义之前: // .h const int MyConst = 10; const string MyStrConst =“String”; class MyClass { ... }; 这会污染全局命名空间(我知道这是一件坏事,为什么它是坏的原因列表),常量
..
让我们来获取这段代码示例 // 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
..