constructor相关内容
不是重复的调用虚拟函数和纯虚函数: 前问题涉及C ++ 03,而不是C ++中的新构造函数委托 在C ++ 11中,我们可以通过使用代理来确保在执行纯虚拟实现之前的正确构造。在构造函数中调用Pure Virtual函数的危险是什么,在构造函数中,但是在通过构造函数委托完成了“完全构造”之后? ,成员函数(包括虚函数成员函数,10.3)可以是 ()函数,其中的成员函数可以是:
..
这可能是一个有明显答案或重复的问题。 为什么没有链接复制构造函数(如默认的ctors或dtors),所以在派生类的复制构造函数被调用之前,基类的复制构造函数被调用?使用复制构造函数和析构函数,它们分别在从基础到派生和派生到基础的链中被调用。为什么不是这种情况下复制构造函数?例如,此代码: class Base { public: Base():basedata ()){}
..
Herb Sutter在其 http://www.gotw.ca 文章中提到对象被构造(具有有效存在) 现在考虑下面的代码 class A { public: A() { f } void f() { cout
..
在编写C ++ 11代码以在类的头文件中为类成员设置默认值时是否是良好的做法? 这在类的构造函数中? 编辑: 我的意思是: foo.h : #include
..
在C ++中的错误条件下,从构造函数退出的最好的技术是什么?特别是,这是一个打开文件的错误。 感谢您的回复。我抛出一个异常。这里是代码(不知道是否是最好的方法,但它很简单) //测试以查看文件是否已打开;否则 if(!file.is_open()){ cerr
..
在C ++ 0x中,您可以使用使用关键字继承构造函数,如下所示: class B {B(int){}}; class A:public B {using B :: B; }; 这将隐式声明一个 A(int)构造函数。这是否与模板一起使用? class B {B(int){}}; template A类:public T {us
..
class C { T a; public: C(T a):a(a){;} }; 是否合法? 方案 是的,它是合法的,适用于所有平台。 它将正确地初始化您的成员变量a,传递的值a。 它被一些更干净的认为是不同的,但不是全部。我个人实际上使用它很多:) 具有相同变量名称的初始化列表起作用,因为初始化列表中初始化项的语法如下:
..
如何从dll(dll中的构造函数)创建一些类?(с++) 或如何从dll动态加载类 解决方案 严格回答你的问题,你需要添加一个extern“C”函数返回构造函数的结果: extern“C”foo * __declspec(dllexport)new_foo(int x){ return new foo(x); } 然后在你的源代码中你可以使用GetProcA
..
我有一个基类MyBase包含一个纯虚函数: void PrintStartMessage()= 0 我想让每个派生类在它们的构造函数中调用 code> MyBase )构造函数 class MyBase { public: virtual void PrintStartMessage()= 0; MyBase() { PrintStartMessage
..
如果我在构造函数中写return语句怎么办?是标准符合吗? struct A { A(){return; } }; 上述代码编译正常,在
..
使用模板时,我遇到了一个需要使一个基类构造函数可以从继承类创建对象,以减少复制/粘贴操作。 我想通过使用关键字以相同的方式通过函数case来执行此操作,但不起作用。 class A { public: A(int val){} }; B类:public A { }; class C:public A { public: C(const string&
..
在C ++中没有静态构造函数的原因是什么? 如果允许,我们将初始化其中的所有静态成员,非常有条理的方式,如: //非法C ++ 类样本 { public: static int some_integer; static std :: vector字符串; //非法构造函数! static sample() { some_
..
具有一个(或多个)虚拟纯函数的类是抽象的,不能用于创建一个新对象,因此它没有构造函数。 现在,我正在读一本有以下例子的书: class Employee { public: Employee(const char *,const char *); 〜Employee(); const char * getFirstName()const; const char * ge
..
在C ++中,可以使用初始化器列表在构造函数开始运行之前初始化类的字段。例如: Foo :: Foo(string s,double d,int n):name,s ),age(n){ // Empty;已处理! } 我很好奇为什么Java没有类似的功能。根据核心Java:第1卷: C ++使用此特殊语法调用字段构造函数。在Java中,没有必要,因为对
..
我在c ++中有以下类定义: struct Foo { int x; char array [24]; short * y; }; class Bar { Bar(); int x; Foo foo; }; 并且想在初始化器中初始化“foo”struct(及其所有成员)的Bar类。可以这样做: Bar :: Bar() :fo
..
我在练习构造函数。下面是我练习的代码,但有一个错误, “引用距离是不明确的”我无法识别我的错误,请帮助我。我一直在努力。 #include #include using namespace std; // distance 类距离 { public: distance(int met,int cen); dista
..
我有一个类与 const 成员,一个构造函数调用另一个构造函数与额外的值填充。通常我可以使用冒号初始化为此,但函数是复杂的( printf / sprintf -like),并要求我在堆栈上使用一个变量,在构造函数的主体中这样做,并使用assign * this 到新对象。但是当然这是无效的,因为我的成员变量是 const 。 class A { public: A(int b):
..
我已经看过关于这个的一些其他问题,但我不明白为什么一个默认的构造函数甚至应该在我的情况下调用。我可以提供一个默认的构造函数,但我想知道为什么它这样做和它影响。 错误C2512: 'CubeGeometry':没有适当的默认构造函数 我有一个名为ProxyPiece的类有CubeGeometry的成员变量。构造函数应该接受一个CubeGeometry并将其分配给成员变量。这是标题:
..
这是我经常遇到的问题。下面的例子说明了它: struct A { int m_SomeNumber; }; struct B { B(A& RequiredObject); private: A& m_RequiredObject; }; struct C { C(); private: A m_ObjectA; B m_ObjectB; };
..
struct X { template X(){} }; 是否可以实例化这样的类型? 解决方案 是的,有可能有这样的构造函数,但是不可能调用它。模板化构造函数的所有模板参数必须从参数列表中推导出或具有默认值。在您的示例中,您无法实例化该类。 [temp.mem] [注意:因为显式模板参数列表跟在函数模板名称
..