草庐IT

private_extern

全部标签

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++ - 删除内联函数调用导致 Unresolved external symbol 错误

我试图证明您需要在所有使用它的TU中定义一个inline函数。但是,以下代码编译良好(MSVS2010):inc.hinlinevoidfoo();测试.cpp#include"inc.h"voidx();intmain(){foo();//测试2.cpp#include"inc.h"voidx(){foo();}请注意函数调用是为了防止优化。这会编译,虽然foo被声明为inline并且仅在test.cpp中定义,但也在test2.cpp中使用>.如果我在main()中注释掉对foo的调用,我会得到预期的错误。"void__cdeclfoo(void)"(?foo@@YAXXZ)ref

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

c++ - 我应该在 v8::External 中手动删除指针吗?

Localtpl=ObjectTemplate::New(isolate);tpl->SetInternalFieldCount(1);Localret=tpl->NewInstance();TestExternal*ex=newTestExternal();ret->SetInternalField(0,External::New(isolate,ex));当ret不再使用时,我是否应该手动删除ex指针?表明我应该或不应该这样做的证据源代码在哪里? 最佳答案 是的,C++需要手动内存管理:如果您使用new手动创建一个对象,那么您还

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++ - 'extern' 关键字有问题

我在cpp文件中有一组全局变量和一个方法。inta;intb;intc;voidDoStuff(){}在头文件中,我已经用extern关键字明确地声明了它们。我的问题是当我在另一个C++文件中包含头文件时,我不能使用外部变量和方法。它给出了一个链接器错误,指出方法和变量的errorLNK2001:unresolvedexternalsymbol。我在这里做错了什么??PS:DoStuff()方法填充变量。所有头文件和cpp文件都在同一个项目文件夹中。谢谢! 最佳答案 试试这个在标题中定义这些变量,而不是仅仅声明它们。externin

c++ - 为什么进程的 "Private Bytes"内存计数器永远不会返回到它的原始值?

如果我有一个nativeC++程序并查看它的初始“私有(private)字节”内存计数器,为什么在创建然后删除对象后它不会恢复到原始值?例如,如果我有一个有两个按钮的应用程序(32位,nativeC++MFC)。一个循环分配一个对象的1,000,000个实例,然后另一个按钮删除这些相同的对象。如果我查看进程的专用字节计数器,我有以下3个值:.说明…………私有(private)字节数===================================应用程序启动.......................1,608K对象。创建.......33,176K对象。已删除.........