constructor相关内容
我现在正在学习转换器,并有几个问题。在这些行: Foo obj(args); Foo obj2; obj = Foo(args); Foo obj3 = Foo(args); 第一部分:只有一个构造函数称为(Foo) $ c> obj 被初始化。 :创建临时对象 obj2 调用它的默认ctor。接下来,我们创建另一个 Foo 的副本,并将它的副本传
..
有可能有一个通用的构造函数,它接受任何类型的初始化列表,即使它有嵌套的列表内吗? 假设你有以下部分模板专门化对于接受其构造函数嵌套初始化程序列表的类: 模板 class ClassA; 模板 class ClassA { typedef std :: initializer_list list_type; typedef std ::
..
我使用这个简单的类而不使用任何继承。 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':非法
..
我使用这个简单的类而不使用任何继承。 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':非法
..
我想在C ++中实现方法链接,如果一个类的构造函数调用是一个单独的语句,例如: Foo foo; foo.bar()。baz(); 但是一旦构造函数调用成为方法链的一部分,编译器就会抱怨“ “。代替“。”。紧接在构造函数调用之后: Foo foo()。 现在我想知道如果这在C ++中是可能的。这是我的测试类: class Foo
..
我想在C ++中实现方法链接,如果一个类的构造函数调用是一个单独的语句,例如: Foo foo; foo.bar()。baz(); 但是一旦构造函数调用成为方法链的一部分,编译器就会抱怨“ “。代替“。”。紧接在构造函数调用之后: Foo foo()。 现在我想知道如果这在C ++中是可能的。这是我的测试类: class Foo
..
我使用这个简单的类而不使用任何继承。 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':非法
..
我有一个多态类的层次结构,比如一个 Shape 抽象基类及其派生类。 Rectangle , Circle 等等。 Virtual Constructor Idiom ,我想知道为什么我们需要在派生类中的虚拟构造函数的返回类型应该返回相同的类型使用智能指针时它的父类? 例如,请参见下面的代码,其中 clone()和 create )成员函数需要将 smart_pointers 返回到 Sha
..
我试图创建自己的结构。所以我写了这段代码。 struct node { int val,id; node(int init_val,int init_id) { val = init_val; id = init_id; } }; node t [100]; int main() { ... } 我试图编译我的程序。但我有一个错
..
我有一个基类声明和定义一个构造函数,但由于某种原因,我的公开派生类没有看到该构造函数,因此我必须在派生类中显式声明一个转发构造函数: class WireCount0 { protected: int m; public: WireCount0(const int& rhs){m = rhs; } }; class WireCount1:public WireCount
..
我有一个类似这样的类: class Test { public: Test字符串值); Test(bool value); }; 如果我创建一个这样的对象: 测试测试(“Just a test ...”); bool构造函数被调用! 任何人都知道为什么? 感谢 解决方案 c $ c>“只是一个测试..
..
根据C ++ 11标准( =默认在类的定义之外),以下内容是合法的吗? //在头文件中 class Test { public: Test(); 〜Test(); }; //在cpp文件中 Test :: Test()= default; Test ::〜Test()= default;是的,一个特殊的成员函数可以是默认定义的,它可以是一个特定的成员函数,它可以
..
在编写我的类时,我一直是一个好孩子,用所有成员变量前缀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); //只是一个例子 } 然而,最近
..
class Foo { public: explicit Foo(){} explicit Foo(Foo&){} }; Foo d = Foo(); 错误:没有匹配函数调用'Foo: :Foo(Foo)' 我尝试更改 Foo C $ c>到 Foo(Foo),因为AFAIK不是一个有效的构造函数,并且我得到:
..
这是一个非常微不足道的问题,关于在C ++中使用构造函数。我将以面试对话的形式(很难以任何其他形式表示) 面试官 - 什么是构造函数? me - 构造函数是确保所有对象在使用之前都已初始化的特殊函数。 面试官 - 什么是初始值列表? 我 - 其中所有的初始化发生。 访问者:在所有数据成员初始化之后才输入构造函数的主体意味着在初始化器列表中执行初始化,而不是在构造函数内
..
我知道C ++中没有返回类型的构造函数 但是,下面的代码编译正确。下面的代码中构造函数返回的是什么? class A { public: A(){} } A a = A(); // A()返回的是什么,为什么? 这里是否有冲突? 解决方案 构造函数不返回任何内容。语法 A()不是构造函数调用,它创建一个 A 类型的临时对象(并调用构造函
..
这里有一个简短的问题: 使用C ++,如何在已经分配的内存区域上调用构造函数? 解决方案 您可以使用展示位置新构造函数,其中包含一个地址。 Foo * foo = new(your_memory_address_here)Foo(); 请参阅
..
考虑下面的类: class A { char * p; int a,b,c,d; public: A(const& A); }; 注意,我必须定义一个复制构造函数,这有两个问题: 大多数字段应该被复制。 更重要的是,每当一个新的属性被添加到类中,拷贝构造函数需要被更新, 我个人喜欢做: A
..
在工作中,我们有一个类有一个昂贵的构造函数,所以我们希望它被调用尽可能少的次数。我们通过使用它,并试图让代码更RVO友好所以说。 但是我们发现了一个怪癖在g ++编译器,我们不明白发生了什么。 请考虑operator + 的两个实现 const Imaginary Imaginary :: operator +(const Imaginary& rhs)const { I
..
我遇到一个编译错误,我甚至不知道如何描述! 代码尝试创建一个 代码: #include #include class Foo { public: Foo(double d) :mD(d) { } b $ b Foo(const std :: string& str) { try { mD = std :
..