草庐IT

lldb_private

全部标签

c++ - 初始化类的私有(private)成员变量

我提前道歉,因为我的一些措辞可能不是100%正确。我要上这样一个类:classClassName{private:AnotherClassclass2;public:ClassName();~ClassName();...在这个类的构造函数中,除其他外,我放了一行ClassName::ClassName(){AnotherClassclass2;}这就是我认为您应该在C++中初始化对象的方式,但是我注意到(通过GDB)正在创建两个AnotherClass对象。一次在构造函数定义上,然后再次在我的初始化行上。这背后的原因是什么?如果我想使用一个更复杂的构造函数,比如AnotherClas

c++ - 如何为二维数组编写访问器(私有(private)成员)

我有一个名为mat[3][3]的类的私有(private)成员,我希望能够在我的类之外访问这个3x3数组(只读取它,而不是更改它)。是否可以编写返回指向我的数组的指针的访问器方法?我怎样才能做到这一点?请提供代码示例。这是我的类(class):classmyClass{private:intmat[3][3];public:return_valueget_mat(void);};我知道我可以使用类似的东西intget_mat(inti,intj);一个一个地访问数组中的每个int,但是为数组的每个成员调用访问器会不会效率低下? 最佳答案

c++ - 确定 C++ 类是否具有私有(private)析构函数

假设我有以下代码:classExample{#ifndefPRIVATE_DESTRUCTORpublic:#endif~Example(){}public:friendclassFriend;};classFriend{public:voidMember();};voidFriend::Member(){std::printf("Example'sdestructoris%s.\n",IsDestructorPrivate::value?"private":"public");}是否可以实现上面的IsDestructorPrivate模板来确定类的析构函数是private还是prot

c++ - 通过 using 指令公开私有(private)继承的内部模板

我正在尝试使用using引入public的指令派生类的访问声明一些在基类中声明的内部类模板。代码:templateclassBase{public:templatestructInner;};templateclassDerived:privateBase{public:usingtypenameBase::templateInner;//makeitvisibleInner*ptr;//noneedfortypenamehere,non-qualifiedname};intmain(){}g++和clang++都不编译这段代码,都提示error:expectedunqualified

c++ - 定义一个类的私有(private)整型常量 : in the header or in the cpp file?

主题主要在此处解决(Wheretodeclare/defineclassscopeconstantsinC++?)特别是here.我想完全理解的是,在积分常数的情况下,它们之间有什么区别://IntheheaderclassA{private:staticconstintmember=0;//Declarationanddefinition};和://IntheheaderclassA{private:staticconstintmember;//Onlydeclaration};//InthecppconstintA::member=0;//Definition(据我所知,第二种可能

c++ - 为什么私有(private)继承不能解决静态函数的歧义? (在 MSVC 中测试)

我想知道为什么对静态函数的调用是模棱两可的,即使两者之一显然不可能调用,因为它是私有(private)的。我希望我可以使用private/protected继承来帮助编译器解决歧义。它是特定于MSVC还是以某种方式在标准中指定?structA{staticintnum(){return0;}};structB{staticintnum(){return1;}};structC:publicA,privateB{};intmain(){C::num();//Ambiguousaccessofnum}背景是我正在尝试一种通过继承在许多派生类(C、D、E、F、G)中重用重载行为(A中的行为)

c++ - 将私有(private)复制构造函数与公共(public)赋值运算符一起使用时出错

你们谁能解释一下为什么下面这段代码不能编译?#includeusingnamespacestd;classFoo{public:Foo(){cout我收到的错误:$g++-ocopy_ctor_assigncopy_ctor_assign.cc&&./copy_ctor_assigncopy_ctor_assign.cc:Infunction'intmain()':copy_ctor_assign.cc:10:error:'Foo::Foo(constFoo&)'isprivatecopy_ctor_assign.cc:17:error:withinthiscontext注意:当我删除

c++ - 派生类中的私有(private)虚函数

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:C++:overridingpublic\privateinheritanceclassbase{public:virtualvoiddoSomething()=0;};classderived:publicbase{private://现在,如果我执行以下操作:base*b=newderived;b->doSomething();//Callsthederivedclassfunctioneventhoughthatisprivate问题:它能够调用派生类函数,即使它是私有(private)的。这怎么可能?

C++私有(private)嵌套类——访问不同的函数

发现了这个奇怪的编译行为,检查了VS2012、VS2017和https://www.onlinegdb.com/online_c++_compiler)基本上对于私有(private)嵌套类,您可以在外部调用公共(public)函数,但不能调用公共(public)构造函数。3个问题:编译器让我调用func()的原因是什么?如果编译器让我调用func(),为什么我不能调用ctor?如果我不能调用ctor,为什么emplace_back可以调用?classOuter{structPrivateInner{PrivateInner(){}voidfunc(){}};public:Privat

c++ - C++接口(interface)中的私有(private)方法?

为什么我要定义一个包含私有(private)方法的C++接口(interface)?即使在公共(public)范围内的方法在技术上假设行为类似于在接口(interface)实现上使用私有(private)方法的模板方法,即使如此,我们也会告诉技术规范。直接从界面。这不是偏离了接口(interface)的原始用法,即外部和内部之间的公共(public)契约吗?您还可以定义一个友元类,它将使用我们类中的一些私有(private)方法,从而强制通过接口(interface)实现。这可能是一个争论。在C++接口(interface)中定义私有(private)方法还有哪些其他参数?