草庐IT

private-key

全部标签

C++:允许访问 protected 类成员而不是私有(private)成员

我知道您可以通过继承来做到这一点,但您应该在"is"情况下使用继承。我也知道有friend,但他们也允许访问私有(private)成员。有什么方法可以做到这一点(允许访问protected类成员而不是私有(private)成员)?为了改写这个问题,我有第1类和第2类。我希望第2类可以访问第1类的protected和公共(public)成员,但不能访问它的私有(private)成员。我该怎么做? 最佳答案 它并不优雅,但这可能适合你:classB;classA{protected:intx;private:inty;};classA_

c++ - 调用函数从类不工作返回私有(private)变量

所以我正在用C++制作一个小游戏,但遇到了一个问题。我的player.h文件中有一个名为player的类,在此类中我有一个名为getPotion()的公共(public)函数。我还有一个名为potion的私有(private)静态变量。我对玩家的健康有完全相同的东西,getHealth()函数完美地返回privatestaticintplayerHealth。但是显然没有任何原因,getPotion函数没有返回药水。我得到一个错误。我还在所有其他文件中包含了头文件。代码如下:(不好意思,我不会插入代码,只好写出来了)player.h(我遇到问题的代码):classPlayer{priv

c++ - 在私有(private)函数中锁定/解锁互斥锁

假设您有一个大函数,可以锁定/解锁内部的互斥锁,并且您想要将该函数分解为更小的函数:#includeclassMyClass:publicUncopyable{public:MyClass():m_mutexBuffer(PTHREAD_MUTEX_INITIALIZER),m_vecBuffer(){}~MyClass(){}voidMyBigFunction(){pthread_mutex_lock(&m_mutexBuffer);if(m_vecBuffer.empty()){pthread_mutex_unlock(&m_mutexBuffer);return;}//DoSom

c++ - 启动一个作为该类私有(private)方法的守护线程?

我是C++11线程的新手,我正在尝试执行以下操作:classSomething{public:voidstart(){this->task_=std::thread(&Something::someTask,this);this->isRunning_=true;this->task_.detach();//Ireaddetachwillstopitfromhanging}voidstop(){this->isRunning=false;}~Something(){this->stop();}private:std::atomicisRunning_;std::threadtask_;

c++ - 为什么在 Singleton 类中使用私有(private)析构函数?

我已经看到构造函数、复制构造函数、析构函数和赋值运算符保存在典型的单例类中的私有(private)范围内。例如classCMySingleton{public:staticCMySingleton&Instance(){staticCMySingletonsingleton;returnsingleton;}private:CMySingleton(){}//Privateconstructor~CMySingleton(){}CMySingleton(constCMySingleton&);//Preventcopy-constructionCMySingleton&operator

c++ - set::key_comp 与 C++ 中的 set::value_comp?

在C++中,set::key_comp与set::value_comp有什么区别?转到cplusplus.com页面没有显着差异。此外在set::key_comp和相关的set::value_comp页面上最后一句是“(...)key_comp和它的兄弟成员函数value_comp是等价的。”例子几乎一样:http://www.cplusplus.com/reference/set/set/key_comp/http://www.cplusplus.com/reference/set/set/value_comp/ 最佳答案 key

c++ - 使用模板公开私有(private) Typedef

我有一个包含私有(private)typedef和几个成员的类功能:classFoo{private:typedefstd::blahblahFooPart;FooPartm_fooPart;...public:intsomeFn1();intsomeFn2();};几个成员函数需要以类似的方式使用m_fooPart,所以我想把它放在一个函数中。我将辅助函数放在匿名中命名空间,但在这种情况下,他们需要知道什么FooPart是。所以,我这样做了:namespace{templateinthelperFn(constT&foopart,intindex){...returnfoopart.

c++ - 使用私有(private)复制/移动构造函数进行聚合初始化

我在为anotherquestion测试一些东西时遇到了这个问题关于初始化聚合。我正在使用GCC4.6。当我用列表初始化聚合时,所有成员都在适当的位置构建,无需复制或移动。即:intmain(){std::array,2>a{std::array{Goo{1,2},Goo{3,4}},std::array{Goo{-1,-2},Goo{-3,-4}}};}让我们通过一些嘈杂的构造函数来确认:structGoo{Goo(int,int){}Goo(Goo&&){std::cout运行时,不会打印任何消息。但是,如果我将移动构造函数设为私有(private),编译器会提示'Goo::Goo

c++ - 具有私有(private)构造函数的类私有(private)继承的工作机制

案例一:classObjectCount{private:ObjectCount(){}};classEmployee:privateObjectCount{};案例二:classObjectCount{public:ObjectCount(){}};classEmployee:privateObjectCount{};案例1:ObjectCount构造函数是私有(private)的,继承是私有(private)的。它给出了编译器错误情况2:ObjectCount构造函数是公共(public)的,继承是私有(private)的。这段代码没问题。谁能解释一下这是怎么回事?

c++ - Cpp - 检查 key 是否存在于 boost bimap 中

我有一张双图。我想检查key是否存在于我的bimap中。我怎样才能做到这一点。这是我的双图:namespacebimap{structName{};structID{};typedefboost::bimaps::bimap>,boost::bimaps::set_of>>name_index_bimap;}我想检查“名称”是否存在。 最佳答案 这在thisexample中解释得很清楚。.在您的情况下,它应该如下所示:name_index_mapyour_map;name_index_map::right_const_iterato