草庐IT

lldb_private

全部标签

C++:覆盖公共(public)\私有(private)继承

如果B使用public从A继承,可以B覆盖其中一个函数并强制它私密吗?classA{public:virtualdoublemy_func1(inti);virtualdoublemy_func2(inti);}classB:publicA//Noticethepublicinheritance{public:virtualdoublemy_func1(inti);private:virtualdoublemy_func2(inti);}反过来呢?如果继承类型是私有(private)的-B可以强制一个特定的函数是公共(public)的吗?如果A是纯抽象的怎么办?有区别吗?protect

c++ - 基类中的私有(private)静态成员

#include#includeclassBase{staticstd::strings;};templateclassDerived:Base{public:Derived(){std::coutobj;}本程序编译运行正常。静态变量s在私有(private)继承的基类中是私有(private)的。派生类如何访问它?如果派生类不是模板,编译器会提示访问私有(private)变量。[aminasya@amy-aminasya-lnxc++]$g++--versiong++(GCC)4.4.720120313(RedHat4.4.7-3)Copyright(C)2010FreeSoftw

c++ - 基类中的私有(private)静态成员

#include#includeclassBase{staticstd::strings;};templateclassDerived:Base{public:Derived(){std::coutobj;}本程序编译运行正常。静态变量s在私有(private)继承的基类中是私有(private)的。派生类如何访问它?如果派生类不是模板,编译器会提示访问私有(private)变量。[aminasya@amy-aminasya-lnxc++]$g++--versiong++(GCC)4.4.720120313(RedHat4.4.7-3)Copyright(C)2010FreeSoftw

C++ - 将静态映射初始化为私有(private)类成员

假设我在一个深夜很无聊,在紧张地盯着电脑显示器几个小时之后,我决定实现一个聚合C++类来管理绘制像素的颜色,因为我显然已经疯了。对于初学者,我们只需告诉(可能是单例的)ColorManager对象我们想要使用什么颜色,然后它会返回一个Color对象,无论它是什么。一个简单的实现:#include"Color.h"#includeenumCOLOR{RED=0,BLUE,GREEN,YELLOW,ORANGE,WHITE,BLACK,BRICKS_FROM_A_DISTANCE_ON_AN_UNUSUALLY_SUNNY_AFTERNOON,//etcCOLOR_COUNT};class

C++ - 将静态映射初始化为私有(private)类成员

假设我在一个深夜很无聊,在紧张地盯着电脑显示器几个小时之后,我决定实现一个聚合C++类来管理绘制像素的颜色,因为我显然已经疯了。对于初学者,我们只需告诉(可能是单例的)ColorManager对象我们想要使用什么颜色,然后它会返回一个Color对象,无论它是什么。一个简单的实现:#include"Color.h"#includeenumCOLOR{RED=0,BLUE,GREEN,YELLOW,ORANGE,WHITE,BLACK,BRICKS_FROM_A_DISTANCE_ON_AN_UNUSUALLY_SUNNY_AFTERNOON,//etcCOLOR_COUNT};class

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++ - 私有(private)范围内私有(private)继承的动态向下转换

对thisquestion的调整我遇到的。考虑:classA{};classB:privateA{staticvoidfoo();};voidB::foo(){B*bPtr1=newB;A*aPtr1=dynamic_cast(bPtr1);//givespointerB*bPtr2=dynamic_cast(aPtr1);//givesNULL}因为aPtr1实际上属于B*类型,并且我们可以完全访问B及其继承自A,我希望这两个Actor都能工作。但他们没有;为什么?还有其他方法可以实现这种Actor吗?注意:如果foo()不是B的成员,则两个强制转换都会失败。如果B公开继承自A,则两

c++ - 私有(private)范围内私有(private)继承的动态向下转换

对thisquestion的调整我遇到的。考虑:classA{};classB:privateA{staticvoidfoo();};voidB::foo(){B*bPtr1=newB;A*aPtr1=dynamic_cast(bPtr1);//givespointerB*bPtr2=dynamic_cast(aPtr1);//givesNULL}因为aPtr1实际上属于B*类型,并且我们可以完全访问B及其继承自A,我希望这两个Actor都能工作。但他们没有;为什么?还有其他方法可以实现这种Actor吗?注意:如果foo()不是B的成员,则两个强制转换都会失败。如果B公开继承自A,则两

c++ - 私有(private)继承隐藏基类,出现 "inaccessible within this context"错误

我遇到了类似于Privateinheritancerendersclassinaccessible中描述的问题当我尝试在派生类中声明基类的成员时,私有(private)继承的基类给出“在此上下文中不可访问”错误。在上述情况下,使用::X显式引用X是可行的,但如果代码位于以下函数中会怎样:voidfooby(){classX{};classY:privateX{};classZ:publicY{public:Xx;//Compiler"inaccessiblewithinthiscontext"error};};在这种情况下你如何引用X?如果fooby是一个结构/类,那么::fooby: