草庐IT

private-inheritance

全部标签

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

c++ - 访问指定为私有(private)的基类的公共(public)静态成员

我正在学习C++。文档learn.microsoft.com/en-us/cpp/cpp/member-access-control-cpp说:Whenyouspecifyabaseclassasprivate,itaffectsonlynonstaticmembers.Publicstaticmembersarestillaccessibleinthederivedclasses.但是,以下代码根据前面引用导致错误C2247的示例稍作调整:'Base::y'notaccessiblebecause'Derived1'uses'private'toinheritfrom'Base'.对

c++ - 我在哪里可以为私有(private)函数定义主体?

我有这样的header(header防护未显示):classGameSystem{public:GameSystem(Game*pcGame);virtual~GameSystem();voidSetup();private:voidInitGame();voidRunGame();voidExitGame();Game*m_pcGame;/*Properties*/intm_nWidth;intm_nHeight;intm_nFps;boolm_bFullscreen;};我在哪里可以为InitGame()、RunGame()和ExitGame()定义主体?我可以在我的.cpp文件中

c++ - Visual Studio 编译器警告 C4250 ('class1' : inherits 'class2::member' via dominance)

以下代码生成警告C4250。我的问题是,最好的解决方案是什么?classA{virtualvoidfunc1();}classB:publicA{}classC:publicA{virtualvoidfunc1();}classD:publicB,publicC{}intmain(){Dd;d.func1();//Causeswarning}根据我的阅读,应该可以这样做:classD:publicB,publicC{usingB::func1();}但是,这实际上并没有做任何事情。我目前解决的方法是:classD:publicB,publicC{virtualvoidfunc1(){B

windows - (MFC) 如果控件是私有(private)成员,父类如何接收控件的消息?

假设我的主类有一个私有(private)成员,它是从CTreeView控件派生的类。我如何处理来自主类本身的TreeView控件的消息?这类似于VisualStudios为您构建的MDI基础应用程序,其中您有两个名为CClassView和CFileView的可停靠TreeView控件,每个控件都有一个从CTreeView派生的私有(private)成员。我可以像这样将消息从子成员控件CViewTree传递到我的CFileView类吗?voidCViewTree::OnTvnSelchanged(NMHDR*pNMHDR,LRESULT*pResult){GetParent()->Sen

windows - Jenkins 不能很好地处理私有(private) GitHub 存储库 (Windows)

我这辈子似乎无法让我的JenkinsCI与Github一起工作。我在克隆命令上失败了,但那是因为key,所以我以服务帐户登录(用户Jenkins作为Windows服务运行)并运行克隆命令。一切都很好。但是,当我想运行获取最新版本时,它不会完成。它只是坐在那里。我已经尝试通过Jenkins的Git插件,也通过Windows命令行脚本。既不工作。但是,如果我打开命令提示符并输入命令,它就可以工作!那么我如何通过Jenkins让它工作呢?我运行这个脚本:set"C:\ProgramFiles(x86)\Git\bin\git.exe"fetch-tssh://git@github.com/O

c# - 在 C# 中将变量声明为 "private"是否可以保护 Windows 中的内存不被内存扫描器访问?

我的同事总是告诉我,如果我们将任何东西声明为“公共(public)”,那将是危险的,因为这样任何程序都可以访问该内存,解决方案是使用“私有(private)”访问修饰符。我想知道这是否属实。 最佳答案 那是不是,事实上是真的。访问修饰符仅用于帮助组织代码。它们只是在您将玻璃杯放在猫够不到的地方以防止其被撞倒的意义上保护它。 关于c#-在C#中将变量声明为"private"是否可以保护Windows中的内存不被内存扫描器访问?,我们在StackOverflow上找到一个类似的问题:

c# - 如何查看文件或文件夹是否未选中 "include inheritable permissions"?

我正在用C#编写一个小实用程序,以确保指定的文件夹及其所有内容都具有适当的访问权限(我想授予AuthenticatedUsers组完全访问权限)。以下代码似乎可以正常更新顶级文件夹的ACL(访问控制列表):SecurityIdentifierallUsers=newSecurityIdentifier(WellKnownSidType.AuthenticatedUserSid,null);InheritanceFlagsiFlags=InheritanceFlags.ContainerInherit|InheritanceFlags.ObjectInherit;FileSystemAc

kotlin - 为什么公共(public)课不能扩展私有(private)课?

我有以下类层次结构:interfaceRepository//ThisclasscontainssomecommonstuffforLocalRepositoryandRemoteRepository.I'mnevergoingtousethisclassoutsidethisfile,soImakeitprivateprivateabstractclassBasicRepositoryImpl//theseclassesaredesignedtobeinstantiatedinotherfilesclassLocalRepository:BasicRepositoryImpl(),R