草庐IT

lldb_private

全部标签

具有私有(private)复制构造函数的类的 C++ STL vector ?

我们的代码中有一个类,比如类C.我想创建一个C类对象的vector.但是,复制构造函数和赋值运算符都被特意声明为private。.我不想(也许不允许)改变它。是否有任何其他干净的方法来使用/定义vector? 最佳答案 你可以使用vector或vector>相反。 关于具有私有(private)复制构造函数的类的C++STLvector?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

c++ - 如何让一个类只能访问另一个类的某些私有(private)成员?

假设我们有两个类:classBase{private:intx;public:voidf();};classFoo{//somevariablesandmethods};现在每个人都可以调用Base::f(),但我只希望Foo能够调用。为了达到这个效果,我们可以将Base::f()设为私有(private),并将Foo声明为友元:classBase{private:intx;voidf();friendFoo;};这种方法的问题在于Foo可以访问Base::f()和Base::x(并且甚至是Base的任何其他私有(private)成员)。但我希望Foo只能访问Base::f()。有没有

c++ - 在 C++ 中将命名空间设为私有(private)

考虑这种情况。我正在编写一个库并希望将我的数据包装在一个命名空间中。例如://header.h#pragmaoncenamespacewrapper{//someinterfacefunctionshere..}我想将我的命名空间设为私有(private)。这样就没有人可以在里面写任何东西。例如,我们总是可以这样写。namespacestd{//somedatahere..}所以我想防止最后一种情况。除了使用包装在类中的静态函数之外,还有什么技术可以做到这一点吗? 最佳答案 不,没有。命名空间总是可以被添加到,除非它是一个匿名命名空

c++ - g++ 4.9.3 提示 friended ctor 对 .emplace_back() 是私有(private)的,但喜欢 .push_back()

我肯定遗漏了关于emplace()和friend的其中一个优点。这是一个完整的最小示例,它重现了g++4.9.3的问题:classFoo{public:classBar{private:friendclassFoo;Bar(Foo&foo):foo(foo){}Foo&foo;};Bar&getBar(){//bars.push_back(*this);//worksfinebars.emplace_back(*this);//Foo::Bar::Bar(Foo&)isprivatereturnbars.back();}private:std::vectorbars;};

c++ - 在 C++ Win32 应用程序中,我如何确定私有(private)字节、工作集和虚拟大小

这个问题在这里已经有了答案:Whatisthewin32APIfunctionforprivatebytes?(3个答案)关闭7年前。我正在为教育目的编写一些代码,我希望能够从用C++编写的Windows控制台程序中打印出这些内存使用值。

c++ - 为什么 Visual C++ 6 提示私有(private)析构函数

以下代码适用于VisualC++2008。但是,当涉及到VisualC++6时,出现以下错误。我可以知道为什么,以及如何修复错误,但仍然使析构函数保持私有(private)。classX{public:staticX&instance(){staticXdatabase;returndatabase;}private:X(){}//Privateconstructor~X(){}//PrivatedestructorX(constX&);//Preventcopy-constructionX&operator=(constX&);//Preventassignment};intmain

c++ - 列表初始化不能用于私有(private)成员吗?

structA{private:inta,b,c;};intmain(){Aa1{};Aa2={};return0;}代码由VC++2012编译(最新更新为“2012年11月CTP”)。我希望a1和a2是零初始化的,但不是。a1和a2没有初始化。为什么? 最佳答案 你是说微软的社区技术预览编译器,他们甚至没有足够的信心将其称为beta,其中有bug?;)这是一个错误;它应该像你期望的那样运行。请照原样报告。 关于c++-列表初始化不能用于私有(private)成员吗?,我们在StackO

c++ - 允许访问私有(private)成员

这个问题在某种程度上是thisone的延续我已经发布了。我想做的:我的意思是允许访问基类的私有(private)成员A在派生类中B,具有以下限制:我想访问的是一个结构--std::map,实际上——,不是一种方法;我不能修改基类;基类A没有模板化的方法,我可以作为后门替代方案重载——我不会添加这样的方法,因为它会反对第二个约束。作为一个可能的解决方案,有人指出我是litb的解决方案(post/blog),但是,对于我来说,我一直无法理解这些帖子中所做的事情,因此,我无法得出解决问题的方法。我正在尝试做的事情:以下代码来自litb的解决方案,提供了一种如何从类/结构访问私有(privat

c++ - 这有可能继承私有(private)类但使成员公开吗?

我想让成员继承私有(private)。我想我看到了一个将它们公开的例子,尽管如此,这个事实是用private关键字派生的。我的问题:如何去做,如果可能的话,难道不应该禁止吗?classU{public:inta;protected:intb;private:intc;};classV:privateU{public:inti;//canmakeapublicagain?}; 最佳答案 您不能将c公开,因为它对U是私有(private)的,并且不能从V访问(此外,这样的设计会require这可能是有缺陷的,因为它会违反封装-一个类不应

c++ - 在公共(public)成员函数中返回私有(private) unique_ptr

考虑以下类原型(prototype):classObjHandler{std::unique_ptrGetPtr(){returnobj;}private:std::unique_ptrobj;};这会生成一个编译时错误,说明std::unique_ptr的复制构造函数已被删除。为什么这里不应用移动语义?是否与GetPtr()不拥有obj指针有关?我应该如何实现我的代码(我需要一个成员函数以最小的开销返回一个指向流的拥有指针)? 最佳答案 unique实际上意味着“独特的所有权”。创建所有权的拷贝是没有意义的,因为那样它就不再是唯一