草庐IT

Private_dirty

全部标签

c++ - 为什么 C++ 编译器不区分同名的继承公共(public)方法和继承私有(private)方法?

我很困惑为什么C++编译器不接受这个:classFoo{private:voidBaz(){}};classBar{public:voidBaz(){};classFooBar:publicFoo,publicBar{};voidmain(){FooBarfb;fb.Baz();}gcc给出的错误是:requestformember‘Baz’isambiguouscandidatesare:voidBar::Baz()voidFoo::Baz()但是我想要Bar::Baz()不是很明显吗,因为Foo::Baz()是私有(private)的?为什么编译器不会在这里消除歧义?

c++ - 有没有简单的方法来公开私有(private)父类 C++ 的方法

有没有办法直接暴露私有(private)父类的一些方法。在下面的示例中,如果我有一个Child类型的对象,我希望能够直接调用其父对象的方法a(),而不是b();当前的解决方案会生成大量样板代码,尤其是在存在大量参数的情况下。classParent{public:voida(intp1,doublep2,intp3,std::vector&p4);voidb();};classChild:privateParent{public:voida(intp1,doublep2,intp3,std::vector&p4){Parent::a(p1,p2,p3,p4);}};

C++ 对象 - Private int 返回奇怪的值

我一直在自学C++,并开始创建一个列表管理器来研究指针的概念。我定义了一个名为List的类,它具有三个属性:intitemTotal;Item*firstItem;Item*lastItem;构造函数将它们的值设置为:itemTotal=0;firstItem=NULL;lastItem=NULL;我构建了一个函数来返回itemTotal的值:intList::getItemTotal(){returnitemTotal;}在我的驱动程序中构建对象后,itemTotal立即开始表现得很有趣并返回非常大的数字(每次都是-858993460),即使列表上没有完成任何工作并且程序中几乎没有发

c++ - 复制构造函数应该是私有(private)的还是公共(public)的

我正在编写一个抽象类,它将成为其他几个类的父类。我认为应该将复制构造函数设为私有(private),因为您使用的是抽象类,没有什么可复制的。但是,我不是100%肯定。我说的对吗?如果不对,为什么要公开或保护它? 最佳答案 如果您不想复制类的对象,则复制构造函数应该是私有(private)的。否则,它应该是公开的。 关于c++-复制构造函数应该是私有(private)的还是公共(public)的,我们在StackOverflow上找到一个类似的问题: https

c++ - std::unique_ptr 编译器错误:派生类的成员无法访问基类的私有(private)成员

我得到CompilerErrorC2248当我尝试编译以下代码时:#include#includeusingnamespacestd;classdata{public:staticdataparse(){datad;data::parse(d);returnd;}list>l;private:staticvoidparse(data&node){}};intmain(){return0;}为什么?我该如何解决这个问题?注意:我使用std::shared_ptr而不是std::unique_ptr没有问题。 最佳答案 您需要为您的类型

c++ - OpenMP 中的预分配私有(private) std::vector 在 C++ 中并行化 for 循环

我打算使用缓冲区std::vectorbuffer(100),一个循环的并行化中的每个线程中的一个,正如这段代码所建议的:std::vectorbuffer(100);#pragmaompparallelforprivate(buffer)for(size_tj=0;j此代码无效。尽管每个线程都有一个缓冲区,但它们的大小可以为0。如何在每个线程的开头分配缓冲区?我还能用吗#pragmaompparallelfor?我可以做得比这更优雅吗:std::vectorbuffer;#pragmaompparallelforprivate(buffer)for(size_tj=0;j

c++ - 具有所有私有(private)成员的类可以是 POD 类吗?

我之前听说POD类型不能有私有(private)数据——但根据C++0x草案,我的要求更宽松(强调我的):hasthesameaccesscontrol(Clause11)forallnon-staticdatamembers这似乎表明只要私有(private)数据都是私有(private)的就可以。我没有C++03的拷贝,但要检查...那么,WindowsApi::Uuid会是一个POD类吗?namespaceWindowsApi{classUuid{union{::UUIDasUuid;//Win32'sUUIDstructunsigned__int64asInt64s[2];un

c++ - 为什么允许内联函数操作私有(private)成员变量?

假设我有一个带有两个内联函数的类:classClass{public:voidnumberFunc();intgetNumber(){returnnumber;}private:intnumber;};inlinevoidClass::numberFunc(){number=1937;}我实例化该类并调用该类中的两个函数:intmain(){Classcls;cls.numberFunc();cout我知道这两个内联函数仍然是该类的成员,但我的理解也是内联函数体内的代码只是插入到它被调用的地方。看来,由于该插入,我不应该能够直接访问成员变量number因为,据我所知,main()中的代

c++ - 'std::ios_base::ios_base(const std::ios_base&)' is private' 错误,同时为 std::ostram 重载运算符 <<

我有一个看起来像这样的结构:sturctperson{stringsurname;person(stringn):surname(n){};}我需要重载operator对于std::ostream和person.我写了这个函数:std::ostreamoperator但我收到此错误:/usr/include/c++/4.6/bits/ios_base.h|788|error:‘std::ios_base::ios_base(conststd::ios_base&)’isprivate|/usr/include/c++/4.6/bits/basic_ios.h|64|error:with

ios - 创建私有(private) cocoapod,git 标签问题

我已经成功创建了一个静态库,MyCore,并创建了相关的存储库。然后我以这种方式创建了MyCore.podspec:Pod::Spec.newdo|s|s.name="MyCore"s.version="0.1.4"s.summary="..."s.description="..."s.homepage="https://foo.com/MyCore"s.license='...'s.platform=:ios,"8.0"s.source={:git=>"https://foo.com/MyCore.git",:tag=>s.version.to_s}s.source_files='M