我可以理解,可能有理由将已实现的(与纯的)虚函数声明为私有(private)或protected。Afaik,如果您将实现的虚拟方法声明为protected,您的子类可以调用基类的方法(而其他人不能)。如果将其声明为私有(private),则只有基类可以调用虚拟方法的默认实现。但是,对于纯虚拟,没有基本实现......那么将纯虚拟声明为私有(private)或protected在功能上不等效吗?protected纯虚拟没有意义,因为您永远无法调用基类的相应方法。protected纯虚拟是否有任何意义?关于SO有一些类似的主题,但我找不到任何可以简明扼要地回答我的问题的内容。
我可以理解,可能有理由将已实现的(与纯的)虚函数声明为私有(private)或protected。Afaik,如果您将实现的虚拟方法声明为protected,您的子类可以调用基类的方法(而其他人不能)。如果将其声明为私有(private),则只有基类可以调用虚拟方法的默认实现。但是,对于纯虚拟,没有基本实现......那么将纯虚拟声明为私有(private)或protected在功能上不等效吗?protected纯虚拟没有意义,因为您永远无法调用基类的相应方法。protected纯虚拟是否有任何意义?关于SO有一些类似的主题,但我找不到任何可以简明扼要地回答我的问题的内容。
我有一个关于boost::lock_guard(或类似的作用域锁)的使用以及在return语句中使用应受锁保护的变量的问题。销毁本地对象和复制返回值的顺序是怎样的?返回值优化对此有何影响?例子:DataClass::GetData(){boost::lock_guardlock(this->mMutex);returnthis->mData;}这是否正确(如果mData是受mMutex保护的变量)?或者我是否必须使用本地范围和临时范围,如下例所示:DataClass::GetData(){Dataret;{boost::lock_guardlock(this->mMutex);ret=
我有一个关于boost::lock_guard(或类似的作用域锁)的使用以及在return语句中使用应受锁保护的变量的问题。销毁本地对象和复制返回值的顺序是怎样的?返回值优化对此有何影响?例子:DataClass::GetData(){boost::lock_guardlock(this->mMutex);returnthis->mData;}这是否正确(如果mData是受mMutex保护的变量)?或者我是否必须使用本地范围和临时范围,如下例所示:DataClass::GetData(){Dataret;{boost::lock_guardlock(this->mMutex);ret=
这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:MakingamethodprivateinapythonsubclassPrivateVariablesandMethodsinPython如何在protectedpython类中定义一个只有子类才能看到的方法?这是我的代码:classBaseType(Model):def__init__(self):Model.__init__(self,self.__defaults())def__defaults(self):return{'name':{},'readonly':{},'constraints':{
这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:MakingamethodprivateinapythonsubclassPrivateVariablesandMethodsinPython如何在protectedpython类中定义一个只有子类才能看到的方法?这是我的代码:classBaseType(Model):def__init__(self):Model.__init__(self,self.__defaults())def__defaults(self):return{'name':{},'readonly':{},'constraints':{
我知道,Python中没有“真正的”私有(private)/protected方法。这种方法并不是要隐藏任何东西。我只是想了解Python是做什么的。classParent(object):def_protected(self):passdef__private(self):passclassChild(Parent):deffoo(self):self._protected()#Thisworksdefbar(self):self.__private()#Thisdoesn'twork,IgetaAttributeError:#'Child'objecthasnoattribute'
我知道,Python中没有“真正的”私有(private)/protected方法。这种方法并不是要隐藏任何东西。我只是想了解Python是做什么的。classParent(object):def_protected(self):passdef__private(self):passclassChild(Parent):deffoo(self):self._protected()#Thisworksdefbar(self):self.__private()#Thisdoesn'twork,IgetaAttributeError:#'Child'objecthasnoattribute'
在下面的代码中,Consumer类可以访问Parent类的protected方法。由于Parent和Consumer类之间没有关系,怎么可能呢?请解释classParent{publicvoidmethod1(){System.out.println("PUBLICMETHOD");}privatevoidmethod2(){System.out.println("PRIVATEMETHOD");}protectedvoidmethod3(){System.out.println("PROTECTEDMETHOD");}}publicclassConsumer{publicstatic
在下面的代码中,Consumer类可以访问Parent类的protected方法。由于Parent和Consumer类之间没有关系,怎么可能呢?请解释classParent{publicvoidmethod1(){System.out.println("PUBLICMETHOD");}privatevoidmethod2(){System.out.println("PRIVATEMETHOD");}protectedvoidmethod3(){System.out.println("PROTECTEDMETHOD");}}publicclassConsumer{publicstatic