草庐IT

C++ 类访问说明符详细程度

“传统的”C++类(只是一些随机声明)可能类似于以下内容:classFoo{public:Foo();explicitFoo(conststd::string&);~Foo();enumFooState{Idle,Busy,Unknown};FooStateGetState()const;boolGetBar()const;voidSetBaz(int);private:structFooPartialImpl;voidHelperFunction1();voidHelperFunction2();voidHelperFunction3();FooPartialImpl*m_impl;

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

ios - AppStore 拒绝 : use of private calls refers to my own methods

我收到了以下拒绝信息:Yourappusesorreferencesthefollowingnon-publicAPIs:removeItems:,setSelectedSection:setIsNew:selectedSectionTheuseofnon-publicAPIsisnotpermittedontheAppStorebecauseitcanleadtoapooruserexperienceshouldtheseAPIschange.查看代码,我在XcodeCoreData代码生成器实现的一段代码中找到了removeItems:(我有一个名为items的子结构)。selec

ios - 为什么我们应该阻止在 ios 中创建单例实例,swift

任何人都可以解释一下阻止单例实例的原因是什么。我看到有人说要像下面那样做privateoverrideinit(){}但无论我们是否这样做,它都可以正常工作。 最佳答案 我不确定你问这个问题是什么意思,如果你问为什么初始化程序是私有(private)的,那么它来自单例设计模式的定义。初始化程序需要是私有(private)的,以确保没有人可以创建您的单例的另一个实例。 关于ios-为什么我们应该阻止在ios中创建单例实例,swift,我们在StackOverflow上找到一个类似的问题: