草庐IT

私有制

全部标签

c++ - 从非成员模板函数访问私有(private)内部类类型

考虑以下代码:#includeusingnamespacestd;classOuter{structInner{intnum;};public:staticInnerGetInner(){returnInner{-101};}};//voidfunc1(Outer::Innerinner){//[1]Doesnotcompileasexpected//coutvoidfunc2(Outer::Innerinner,Dummy=Dummy()){cout(Outer::GetInner());//[3]Howdoesthiscompile?//Outer::Innershouldnotb

c++ - Google Mock中如何访问私有(private)成员

我正在尝试为一个带有私有(private)vector的类编写模拟,它将数据插入到私有(private)vector中。但是,我没有看到使用GoogleMock来做到这一点的方法。理想情况下,我不希望在我的界面中有任何与测试相关的内容。此外,我不想让私有(private)vectorprotected并子类化该类并添加访问器方法,因为这会导致我的代码泄漏其实现。这是我目前所拥有的。我想要完成的是用Fake类插入数据,并使用Mock类在指向Fake类的指针上调用Real::first()(这样我就可以使用Fake的vector而不是Real的vector)。编译此程序时,返回-1而不是4

c++ - 公共(public)接口(interface)方法的私有(private)实现

这个问题在这里已经有了答案:OverridingpublicvirtualfunctionswithprivatefunctionsinC++(7个答案)关闭6年前。我遇到过一段代码,其方法通过公共(public)接口(interface)公开,而实现是私有(private)的。我不确定预期的行为应该是什么。简化示例:#includeclassInterface{public:virtual~Interface(){}virtualvoidmyIfMethod()=0;};classDerived:publicInterface{private:voidmyIfMethod(){std

c++ - 可插入私有(private) DICOM 标签的数据是否有任何限制?

我正在创建一个包含许多私有(private)标签的二次捕获DICOM文件。文件(69Mb)的内容以二进制形式读取并插入到私有(private)标签(0099,1016)中,VR设置为OB。这样创建的DICOM文件的大小约为75MB。文件保存成功后,我将使用C_STORE将文件发送到PACS(我使用DCM4CHEE作为PACS)。但是PACS抛出内部错误(状态0x0110)并且C_STORE操作失败。PACS错误日志:Received:C-STORE-RSP(0x00000000,"0x000000CA")#Group0000Length(0x00000002,"1.2.840.1000

c++ - 私有(private)类特化错误

在编译期间,clang中的以下代码出现警告(在vc++中它工作正常):warning:explicitspecializationof'Helper'withinclassscopeisaMicrosoftextension[-Wmicrosoft]#include#includeenumclassCar{BMW};classC{staticvoidMethod(){puts("inner");}};templateclassBaseClass{private:templatestructHelper;templatestructHelper{typedefCInnerType;sta

【运维知识大神篇】运维人必学的Docker教程6(Docker-Compose使用详解+Linux特性管理+macvlan技术+consul实现大规模跨主机通信overlay+私有仓库harbor)

本篇文章继续给大家介绍Docker的有关内容,包括docker启动特权容器及利用特权修改内核参数,Attach和Exec区别,Docker-compose使用详解,Linux特性管理,macvlan技术实现docker跨主机通信,使用consul工具实现大规模跨主机通信overlay(基于vxlan实现),Docker相关参数说明,测试使用的Docker私有仓库docker-registry和企业级docker仓库harbor。目录特权容器Attach和Exec区别一、使用案例二、进程展示Docker-Compose详解一、compose基础参数使用二、docker-compose部署zabb

c++ - 私有(private)继承,返回对基类静态成员的引用

我有一个简单的问题,关于从一个私有(private)继承基类的类继承,即我们有classBase{};classHeir:privateBase{};classHeirsHeir:publicHeir{};了解HeirsHeir无法访问“其”Base的任何内容。特别是,它不能有返回对自身的Base&引用的方法。但为什么它不能返回对另一个Base对象的引用?那么为什么下面的代码不能编译:classBase{};classKid:privateBase{};Baseinstance;classGrandkid:publicKid{constBase&GetInstance()const{r

尽管明确声明为私有(private),但 c++ 函数仍可公开调用

我目前正在调查为什么我能够从不应从中访问私有(private)函数的上下文中调用私有(private)函数。我已经将它缩小到一个非常简单的示例,但我仍然无法确定问题所在。LIVEexample这是我缩小的版本:templateconceptboolConvertibleNoNarrow=requires(Fromf,Tot){t={f};};templateclassWrapper{Tt;public:Wrapper(ConvertibleNoNarrowu):t(u){}private://shouldbePRIVATEvoidoperator()(){}};intmain(){Wr

c++ - 私有(private)设置/获取函数——为什么私有(private)以及如何使用?

我读过很多解释为什么我应该使用“私有(private)”的指南,答案总是“因为我们不希望任何其他人将其设置为某物”。那么,让我问以下问题:假设我想要一个设置一次的变量(可能类似于视频游戏中的角色名称,询问一次,然后设置,然后您只需使用getvariable(edit:function)获取游戏的其余部分)我该如何处理那一组?我将如何处理这个问题?在这种情况下使用私有(private)访问修饰符的实际优势是什么?如果我从不提示用户再次输入名称,并且从不将信息存储回class.name,数据不应该保持安全(适度地,假设代码按预期工作)吗?我希望有人能帮我解决这个问题,因为我在谷歌上搜索和在

java - 在哪些情况下我们将变量设为公有而将方法设为私有(private)?

目前我正在学习java和C++的基础知识。我在LetUsC++一书中读到,出于安全目的,几乎在每种情况下,我们都将实例变量设为私有(private),将方法设为公有。但本书中也提到,在某些情况下,我们将变量设为公有,将方法设为私有(private)。。我一直在想,在什么情况下我们会这样做。谁能解释一下。 最佳答案 私有(private)方法(或C++术语中的私有(private)成员函数)主要用作辅助函数。例如,想一想您想要实现分数的情况,但又想确保您的分数始终被归一化。然后你可以使用一个私有(private)成员函数normali