constructor相关内容

C ++对象创建和构造函数

我现在正在学习转换器,并有几个问题。在这些行: Foo obj(args); Foo obj2; obj = Foo(args); Foo obj3 = Foo(args); 第一部分:只有一个构造函数称为(Foo) $ c> obj 被初始化。 :创建临时对象 obj2 调用它的默认ctor。接下来,我们创建另一个 Foo 的副本,并将它的副本传 ..
发布时间:2016-10-23 20:11:42 C/C++开发

非法成员初始化

我使用这个简单的类而不使用任何继承。 class A { int a; int b; public: A(int x,int y){a = x; b = y;} A():A(0,0){}; 〜A(){}; }; int main() { A a1,a2(5,7); } 我收到此错误。 错误C2614:'A':非法 ..
发布时间:2016-10-23 19:48:00 C/C++开发

非法成员初始化

我使用这个简单的类而不使用任何继承。 class A { int a; int b; public: A(int x,int y){a = x; b = y;} A():A(0,0){}; 〜A(){}; }; int main() { A a1,a2(5,7); } 我收到此错误。 错误C2614:'A':非法 ..
发布时间:2016-10-23 19:42:18 C/C++开发

方法链包括类构造函数

我想在C ++中实现方法链接,如果一个类的构造函数调用是一个单独的语句,例如: Foo foo; foo.bar()。baz(); 但是一旦构造函数调用成为方法链的一部分,编译器就会抱怨“ “。代替“。”。紧接在构造函数调用之后: Foo foo()。 现在我想知道如果这在C ++中是可能的。这是我的测试类: class Foo ..
发布时间:2016-10-23 19:39:38 C/C++开发

方法链包括类构造函数

我想在C ++中实现方法链接,如果一个类的构造函数调用是一个单独的语句,例如: Foo foo; foo.bar()。baz(); 但是一旦构造函数调用成为方法链的一部分,编译器就会抱怨“ “。代替“。”。紧接在构造函数调用之后: Foo foo()。 现在我想知道如果这在C ++中是可能的。这是我的测试类: class Foo ..
发布时间:2016-10-23 19:37:49 C/C++开发

非法成员初始化

我使用这个简单的类而不使用任何继承。 class A { int a; int b; public: A(int x,int y){a = x; b = y;} A():A(0,0){}; 〜A(){}; }; int main() { A a1,a2(5,7); } 我收到此错误。 错误C2614:'A':非法 ..
发布时间:2016-10-23 19:33:31 C/C++开发

虚拟构造函数成语与智能指针

我有一个多态类的层次结构,比如一个 Shape 抽象基类及其派生类。 Rectangle , Circle 等等。 Virtual Constructor Idiom ,我想知道为什么我们需要在派生类中的虚拟构造函数的返回类型应该返回相同的类型使用智能指针时它的父类? 例如,请参见下面的代码,其中 clone()和 create )成员函数需要将 smart_pointers 返回到 Sha ..
发布时间:2016-10-23 15:06:14 C/C++开发

C ++ struct构造函数

我试图创建自己的结构。所以我写了这段代码。 struct node { int val,id; node(int init_val,int init_id) { val = init_val; id = init_id; } }; node t [100]; int main() { ... } 我试图编译我的程序。但我有一个错 ..
发布时间:2016-10-23 14:50:08 C/C++开发

C ++构造函数初始化列表奇怪

在编写我的类时,我一直是一个好孩子,用所有成员变量前缀m _: class Test { int m_int1; int m_int2; public: Test(int int1,int int2):m_int1(int1),m_int2(int2){} }; int main(){ Test t(10,20); //只是一个例子 } 然而,最近 ..
发布时间:2016-10-23 14:06:21 C/C++开发

在C ++中使用构造函数

这是一个非常微不足道的问题,关于在C ++中使用构造函数。我将以面试对话的形式(很难以任何其他形式表示) 面试官 - 什么是构造函数? me - 构造函数是确保所有对象在使用之前都已初始化的特殊函数。 面试官 - 什么是初始值列表? 我 - 其中所有的初始化发生。 访问者:在所有数据成员初始化之后才输入构造函数的主体意味着在初始化器列表中执行初始化,而不是在构造函数内 ..
发布时间:2016-10-23 14:02:52 C/C++开发

C ++中构造函数的返回类型

我知道C ++中没有返回类型的构造函数 但是,下面的代码编译正确。下面的代码中构造函数返回的是什么? class A { public: A(){} } A a = A(); // A()返回的是什么,为什么? 这里是否有冲突? 解决方案 构造函数不返回任何内容。语法 A()不是构造函数调用,它创建一个 A 类型的临时对象(并调用构造函 ..
发布时间:2016-10-23 13:56:40 C/C++开发

在已分配的内存上调用构造函数

这里有一个简短的问题: 使用C ++,如何在已经分配的内存区域上调用构造函数? 解决方案 您可以使用展示位置新构造函数,其中包含一个地址。 Foo * foo = new(your_memory_address_here)Foo(); 请参阅 ..
发布时间:2016-10-23 13:55:23 C/C++开发

创建一个易于维护的复制构造函数

考虑下面的类: class A { char * p; int a,b,c,d; public: A(const& A); }; 注意,我必须定义一个复制构造函数,这有两个问题: 大多数字段应该被复制。 更重要的是,每当一个新的属性被添加到类中,拷贝构造函数需要被更新, 我个人喜欢做: A ..
发布时间:2016-10-23 13:54:44 C/C++开发

优化构造函数调用的数量

在工作中,我们有一个类有一个昂贵的构造函数,所以我们希望它被调用尽可能少的次数。我们通过使用它,并试图让代码更RVO友好所以说。 但是我们发现了一个怪癖在g ++编译器,我们不明白发生了什么。 请考虑operator + 的两个实现 const Imaginary Imaginary :: operator +(const Imaginary& rhs)const { I ..
发布时间:2016-10-23 13:51:04 C/C++开发