草庐IT

Private-Package

全部标签

c++成员函数访问私有(private)静态变量?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whatdoesitmeantohaveanundefinedreferencetoastaticmember?如果我在类声明之外实现函数,我不知道为什么会出现错误“对`TT::i'的undefinedreference”?这是代码..classTT{private:staticinti;public:voidt();};voidTT::t(){i=0;}

c++ - 可以通过地址访问私有(private)变量吗?

公共(public)函数是否可以返回指向类中私有(private)变量的指针。如果是/如果不是,会发生什么?它会崩溃还是有什么非常不安全的地方?可以读取或写入指向的数据吗?谢谢 最佳答案 是的,成员函数可以返回指向私有(private)数据成员的指针(或引用)。除了在大多数情况下它会破坏封装之外,这没有什么错误。当然可以通过返回的指针或引用来读取数据成员。它是否可以写入取决于返回的指针或引用是否指向一个const限定的对象(即,如果您返回一个constT*,您将无法修改指向T)。例如:classExample{public:int*

c++ - 私有(private)成员 : Static const vs. 只是 const

当一个对象具有一些不会改变并且在其整个功能中都需要的特征时,我正在尝试确定最佳选择。静态常量成员Const成员在我看来,静态成员的真正原因是拥有一个可以更改的变量,从而影响同一类的所有其他对象。但是,有人建议将类“不变量”作为静态常量成员。我正在寻找有关建立类常量的推荐方法及其原因的一些见解。 最佳答案 “不会改变”不够准确。这里的主要问题是类的不同对象是否需要具有这些const成员的不同值(即使它们在对象的生命周期内没有改变)或者所有对象都应该使用(共享)相同的值。如果类的所有对象的值都相同,那么当然应该是类的staticcons

c++ - 为什么在显式实例化中不恰本地访问私有(private)对象是合法的?

为什么这会被允许:////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////templatestructinvisible{statictypenameT::typevalue;};templatetypenameT::typeinvisible::value;//////////////////////////////////////////////

c++ - 为什么公共(public)重载与某些编译器上的私有(private) using 指令冲突?

我在我的一个项目中遇到过以下情况,其中基类有一个函数模板,它被派生类模板中的非模板函数隐藏。在类层次结构的更下方,非模板化函数通过using指令显式地将函数引入作用域。这是一个简化的示例代码:classBase{public:templateconstT&get()const;};templateclassDerived:publicBase{private:usingBase::get;public:constT&get()const;};templateclassMoreDerived:publicDerived{public:usingDerived::get;//;神马:htt

kotlin - 我可以将 Kotlin 文件生成的类的默认构造函数设为私有(private)吗?

如果我创建一个Kotlin文件MyTest.ktpackagemy.testfunsayHello():String="Hello"将生成一个类MyTestKt,可以像这样从java访问它:MyTestKt.sayHello()//Returns"Hello"MyTestKtmyTestKt=newMyTestKt()//Instantiate我想将该构造函数设为私有(private)。那可能吗?如果有,怎么做?我知道我可以使用object来创建单例,这不是我的问题。我知道我可以创建一个包含companionobject的类,这也不是我的问题。 最佳答案

kotlin - 我可以将 Kotlin 文件生成的类的默认构造函数设为私有(private)吗?

如果我创建一个Kotlin文件MyTest.ktpackagemy.testfunsayHello():String="Hello"将生成一个类MyTestKt,可以像这样从java访问它:MyTestKt.sayHello()//Returns"Hello"MyTestKtmyTestKt=newMyTestKt()//Instantiate我想将该构造函数设为私有(private)。那可能吗?如果有,怎么做?我知道我可以使用object来创建单例,这不是我的问题。我知道我可以创建一个包含companionobject的类,这也不是我的问题。 最佳答案

c++ - 我可以在类主体中默认一个私有(private)构造函数吗?

GCC4.5不允许我这样做:classfoo{public:foo()=default;private:foo(fooconst&)=default;foo&operator=(fooconst&)=default;};它提示说:error:'foo::foo(constfoo&)'declaredwithnon-publicaccesscannotbedefaultedintheclassbodyerror:'foo&foo::operator=(constfoo&)'declaredwithnon-publicaccesscannotbedefaultedintheclassbod

c++ - 单例 - protected 与私有(private)构造函数

在设计单例时,为什么构造函数是protected而不是private?这是基于我在网上看到的内容。我们想控制该类的实例数量,这很公平,但为什么要protected?private不也可以解决这个问题吗? 最佳答案 首先,在绝大多数情况下,单例不是一个好主意(Why?)。与全局变量相比,使用它们甚至更少。这样子类就可以实例化Singleton基类,在它自己的GetInstance()类型函数中将其作为自身的一部分返回。这就是它在设计模式中完成的原因。因此,如果您计划从Singleton继承,它才真正相关。GoF说,(第130页,子类化

c++ - 可以抛出具有私有(private)拷贝构造函数的对象吗?

我遇到了一些我不清楚的异常问题。在C++中,当抛出一个对象时,它首先被复制到一个临时对象,然后将临时对象传递给捕获代码。复制涉及使用对象的类复制构造函数。AFAIK,这意味着如果一个类有一个私有(private)的复制构造函数,它就不能用作异常。但是在VS2010中,编译运行如下代码:classExcept{Except(constExcept&other){i=2;}public:inti;Except():i(1){}};intmain(){try{Exceptex1;throwex1;//privatecopyconstructorisinvoked}catch(Except&e