草庐IT

private-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++ 单例用法 : 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++ - 可以从外部访问私有(private)运营商吗?

即如果我在我的类中的私有(private)部分中定义运算符==和+,它们可以从main访问吗?它在MSVS2008和2010中有效,但对我来说它似乎是编译器中的错误。是这样吗? 最佳答案 在私有(private)访问说明符下声明的函数或成员将无法在类成员函数之外访问。在C++中,类/结构/union有3个访问说明符。这些访问说明符定义了如何访问类的成员。当然,类的任何成员都可以在该类中访问(在同一类的任何成员函数中)。继续访问访问说明符的类型,它们是:Public-声明为Public的成员可通过类的对象从类外部访问。Protecte

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

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

c# - 如何在 C# 中使用 Private Inheritance aka C++ 以及为什么它不存在于 C# 中

我知道C++支持私有(private)继承,C#只支持公有继承。我还看到一篇文章说私有(private)继承通常定义类之间的HAS-A关系和某种聚合关系。编辑:私有(private)继承的C++代码:“Carhas-aEngine”关系也可以用私有(private)继承来表达:classEngine{public:Engine(intnumCylinders);voidstart();//StartsthisEngine};classCar:privateEngine{//Carhas-aEnginepublic:Car():Engine(8){}//InitializesthisCa

c++ - 为什么这个友元函数不能访问私有(private)变量?

classStudent{public:Student(inttest):key(705){if(test==key){cout>testkey;Studentbob(testkey);printResult();}函数printResult似乎无法从Student类访问私有(private)变量allow。我是在错误的地方制作了printResult原型(prototype)还是语法错误?据我所知,我们可以在类里面的任何地方为friend制作原型(prototype)。 最佳答案 printResult不是成员函数,所以你需要给它

c++ - 非类函数可以私有(private)化吗?

我在我创建的命名空间中有一些函数,这些函数在我的整个程序中都在使用。在头文件中:namespaceNQueens{staticintheur=0;intCalcHeuristic(char**state,intsize);voidCalcHorzH(char**state,int&heuristic,intsize);voidCalcColH(char**state,int&heuristic,intsize);voidCalcDiagH(char**state,int&heuristic,intsize);intcalcCollisions(intqueensPerRow,intsi

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

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

c++ - 私有(private)继承和组合,哪个最好,为什么?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭2年前。Improvethisquestion假设我有一个类engin并且我从engin类继承了一个类carclassengin{public:engin(intnobofcylinders);voidstart();};classcar:privateengin{public:car():e(8){}voidstart(){e.start();}private:engine;};现在同样可以通过组合来完成,问题是哪种方法最好并且主要

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

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