草庐IT

default-constructor

全部标签

c++ - C++ 代码错误 "expected constructor, destructor, or type conversion before ‘(’ token ”和 "no matching function for call to ..."

真正尝试解决错误,仔细检查所有内容。请帮忙。c++新手,请多关照。头文件(.h)#ifndefGUARD_Optimized_quick_sort_h#defineGUARD_Optimized_quick_sort_h#include#include#includeusingnamespacestd;templateclassoptimized_quick_sort{public:optimized_quick_sort(vectorarray){this->array=array;}optimized_quick_sort(listarray){vectortemp(array.b

c++ - 默认构造函数为空时做什么?

我想知道是否有人可以解释分配内存后默认的ctor做了什么,它如何初始化分配的内存? 最佳答案 默认构造函数调用所有非静态数据成员的默认构造函数,除了那些保持未初始化的内置类型。[2003:12.1/5]:AdefaultconstructorforaclassXisaconstructorofclassXthatcanbecalledwithoutanargument.Ifthereisnouser-declaredconstructorforclassX,adefaultconstructorisimplicitlydeclare

c++ - 默认构造函数是在什么情况下生成的?

我有以下类(class):classTileset{//baseclasspublic:staticstd::vectorlist;virtual~Tileset()=0;protected:std::vectortiles_list;sf::Texturesheet;private://noncopiableTileset(constTileset&);Tileset&operator=(constTileset&);};其中sf::Texture有一个默认构造函数根据我的理解,应该生成默认构造函数,因为每个成员也可以是默认构造的。然而,当我尝试在不调用Tileset构造函数的情况下

C++ 单例用法 : compiler complains about private constructor

我知道有一百万个关于单例的问题和答案,但我似乎无法找到解决方案。所以冒着反对票的风险,这是我的问题:我想使用AndreiAlexandrescu的现代C++设计中的单例实现:标题:classSingleton{staticSingleton&Instance();private:Singleton(){};Singleton(constSingleton&){};Singleton&operator=(constSingleton&){};~Singleton(){};};实现:#include"s.hh"Singleton&Singleton::Instance(){staticSi

c++ - std::default_random_engine 即使改变种子也会生成相同的值?

我正在尝试实现一个类,该类将用作随机库的某种包装器,以便我可以(我认为)在我的代码中的其他地方以更直观的方式使用它的对象和函数。在我的标题中有这样的内容:classRandomDevice{private:unsignedlongrand_seed;default_random_engineengine;public:RandomDevice(unsignedlongn);intrandInt(intmin,intmax);};然后在.cpp文件中我实现了这两个函数(constructor和randInt),如下所示:RandomDevice::RandomDevice(unsigne

c++ - 与 move 构造函数混淆 : unable to call move constructor

我一直难以理解C++中的move构造函数。我用默认构造函数、复制构造函数、move构造函数和析构函数制作了一个简单的类。此外,我定义了一个具有两个重载的函数,一个接受对该类的引用,一个接受对该类的右值引用。我的测试代码如下。#includeclassc{public:c(){std::cout我得到的输出不是我所期望的。以下是我从此代码获得的输出。defaultconstructorcopyconstructorpassedbyreferencedefaultconstructorpassedbyrvaluereferencedestructor除了第3行,我能理解所有行的输出。在第3

c++ - 如何在不使用异常的情况下检查 constructor() 中的失败?

我正在处理的所有类都有Create()/Destroy()(或Initialize()/Finalized())方法。Create()方法的返回值是bool,如下所示。boolMyClass::Create(...);所以我可以通过返回值来检查实例的初始化是否成功。如果没有Create()/Destroy(),我可以在constructor()和destroy()中做同样的工作,但我无法解决以下问题。谁能帮帮我?提前致谢。我不能使用异常(exception),因为我的公司不喜欢它。classFoo{private:AnotherClassa;public:Foo(){if(a.Init

c++ - 为什么这里调用的是 Copy Constructor 而不是普通的 Constructor 和重载的赋值运算符?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:IsthereadifferenceinC++betweencopyinitializationanddirectinitialization?CopyconstructorsandAssignmentOperators我有一个C类,我在其中重载了Normal、复制构造函数和赋值运算符以打印被调用内容的踪迹。我写了以下代码来测试什么时候被调用?Cc1;-->NormalConstuctor..//understoodFineCc2;c2=c1;-->Normalconstructor+assignmentop

c++ - 仅对 C++ 中的空私有(private)构造函数使用声明是否正确?

例如,这是正确的吗:classC{private:C();C(const&Cother);}或者您应该提供定义:classC{private:C(){};C(const&Cother){};}?感谢当前的答案。让我们扩展这个问题——编译器是否会在其中一个示例中生成更好的代码?我可以想象为ctor提供主体会强制编译器在编译单元中包含一些(空)代码吗?自动生成的代码也是如此吗? 最佳答案 如果您不希望您的对象可复制,则无需提供实现。只需将复制ctor声明为私有(private)即可,无需任何实现。其他ctors也是如此,如果您不想让任何

c++ - 未命中断点 - "the module did not load at the default load address"

我正在尝试调试CPPUnitTests,断点设置在作为待测试DLL(C++非托管dll)一部分的文件中。我将CPPunit测试程序进程附加到打开项目的visualstudioIDE,处于native模式(也尝试过托管+native),然后运行测试,但断点根本没有命中。断点似乎没问题(全红点)。我在DebugBuild中构建了所有必要的DLL。我去Debug->Windows->Modules检查测试程序进程是否加载了我正在调试的DLL,它确实加载了,并且SYmbol文件也被加载了,但是DLL的名称中有一个感叹号和当我将鼠标悬停在它上面时,它说“模块没有在默认加载地址加载”。我该如何解决