草庐IT

protecting

全部标签

c++ - 私有(private)和 protected 纯虚函数之间有什么区别吗?

我可以理解,可能有理由将已实现的(与纯的)虚函数声明为私有(private)或protected。Afaik,如果您将实现的虚拟方法声明为protected,您的子类可以调用基类的方法(而其他人不能)。如果将其声明为私有(private),则只有基类可以调用虚拟方法的默认实现。但是,对于纯虚拟,没有基本实现......那么将纯虚拟声明为私有(private)或protected在功能上不等效吗?protected纯虚拟没有意义,因为您永远无法调用基类的相应方法。protected纯虚拟是否有任何意义?关于SO有一些类似的主题,但我找不到任何可以简明扼要地回答我的问题的内容。

c++ - 私有(private)和 protected 纯虚函数之间有什么区别吗?

我可以理解,可能有理由将已实现的(与纯的)虚函数声明为私有(private)或protected。Afaik,如果您将实现的虚拟方法声明为protected,您的子类可以调用基类的方法(而其他人不能)。如果将其声明为私有(private),则只有基类可以调用虚拟方法的默认实现。但是,对于纯虚拟,没有基本实现......那么将纯虚拟声明为私有(private)或protected在功能上不等效吗?protected纯虚拟没有意义,因为您永远无法调用基类的相应方法。protected纯虚拟是否有任何意义?关于SO有一些类似的主题,但我找不到任何可以简明扼要地回答我的问题的内容。

c++ - 返回 protected 数据时如何使用 lock_guard

我有一个关于boost::lock_guard(或类似的作用域锁)的使用以及在return语句中使用应受锁保护的变量的问题。销毁本地对象和复制返回值的顺序是怎样的?返回值优化对此有何影响?例子:DataClass::GetData(){boost::lock_guardlock(this->mMutex);returnthis->mData;}这是否正确(如果mData是受mMutex保护的变量)?或者我是否必须使用本地范围和临时范围,如下例所示:DataClass::GetData(){Dataret;{boost::lock_guardlock(this->mMutex);ret=

c++ - 返回 protected 数据时如何使用 lock_guard

我有一个关于boost::lock_guard(或类似的作用域锁)的使用以及在return语句中使用应受锁保护的变量的问题。销毁本地对象和复制返回值的顺序是怎样的?返回值优化对此有何影响?例子:DataClass::GetData(){boost::lock_guardlock(this->mMutex);returnthis->mData;}这是否正确(如果mData是受mMutex保护的变量)?或者我是否必须使用本地范围和临时范围,如下例所示:DataClass::GetData(){Dataret;{boost::lock_guardlock(this->mMutex);ret=

python - python中的 protected 方法

这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:MakingamethodprivateinapythonsubclassPrivateVariablesandMethodsinPython如何在protectedpython类中定义一个只有子类才能看到的方法?这是我的代码:classBaseType(Model):def__init__(self):Model.__init__(self,self.__defaults())def__defaults(self):return{'name':{},'readonly':{},'constraints':{

python - python中的 protected 方法

这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:MakingamethodprivateinapythonsubclassPrivateVariablesandMethodsinPython如何在protectedpython类中定义一个只有子类才能看到的方法?这是我的代码:classBaseType(Model):def__init__(self):Model.__init__(self,self.__defaults())def__defaults(self):return{'name':{},'readonly':{},'constraints':{

python - Python中私有(private)和 protected 方法的继承

我知道,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 - Python中私有(private)和 protected 方法的继承

我知道,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'

java protected 方法可访问性

在下面的代码中,Consumer类可以访问Parent类的protected方法。由于Parent和Consumer类之间没有关系,怎么可能呢?请解释classParent{publicvoidmethod1(){System.out.println("PUBLICMETHOD");}privatevoidmethod2(){System.out.println("PRIVATEMETHOD");}protectedvoidmethod3(){System.out.println("PROTECTEDMETHOD");}}publicclassConsumer{publicstatic

java protected 方法可访问性

在下面的代码中,Consumer类可以访问Parent类的protected方法。由于Parent和Consumer类之间没有关系,怎么可能呢?请解释classParent{publicvoidmethod1(){System.out.println("PUBLICMETHOD");}privatevoidmethod2(){System.out.println("PRIVATEMETHOD");}protectedvoidmethod3(){System.out.println("PROTECTEDMETHOD");}}publicclassConsumer{publicstatic