草庐IT

private_extern

全部标签

c++ - 如何访问其他模板类实例的私有(private)成员?

这个问题在这里已经有了答案:HowtoshareprotectedmembersbetweenC++templateclasses?(1个回答)关闭8年前。这个极小的示例将无法编译,因为A无法访问私有(private)成员i在AtemplateclassA{inti;public:templatevoidcopy_i_from(constA&a){i=a.i;}};intmain(void){Aai;Aad;ai.copy_i_from(ad);return0;}我找不到使这些模板实例成为friend的正确方法。

c++ - 访问从成员函数返回的私有(private)嵌套类

请帮助我理解为什么类成员函数可以返回私有(private)嵌套类对象,以及为什么可以在该私有(private)嵌套类上调用成员函数,例如:classY{classX{public:voidf(){cout我用GCC和VisualC++进行了测试,最后一行在两者上都进行了编译。我似乎无法在C++标准中找到任何使它有效的内容。知道为什么会这样吗?编辑:另一个观察:voidi(){Yy;Y::Xx2=y.g();//Error:classY::Xisprivatex2.f();//Errorautox3=y.g();//OKx3.f();//OK} 最佳答案

c++ - 友元和私有(private)嵌套类继承

我想继承嵌套类,它位于外部类的私有(private)部分。可能吗?classA{friendclassB;friendclassC;private:classNiceNestedClass{};};classC{voida(){A::NiceNestedClassworks;}};classB:A::NiceNestedClass{};NiceNestedClass的实例化不是问题。但是g++不允许我继承它。有什么解决方法吗?g++-std=c++11a.c-oaa.c:5:11:error:‘classA::NiceNestedClass’isprivateclassNiceNest

c++ - 在非函数调用相关声明上使用 "extern C"

我知道之前有人问过有关extern"C"的问题,但我收到的信号很复杂,希望有人能指出以下场景中的最佳实践。我已经为Linux编写了一个驱动程序,并定义了几个struct以及一些_IO、_IOR和_IOWioctl(...)调用的定义。我的结构都不包含任何函数,下面是我使用的struct、enum和ioctl示例:#ifdef__cplusplusextern"C"{#endifenumAlignment{Left=0,Right=1,Middle=3};structData{intSize;void*Address;};#definefoo_IOR(DRV_ID,1,structDat

c++ - "error LNK2001: unresolved external symbol"

这个问题在这里已经有了答案:Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?(38个答案)关闭5年前。我的VC++2008程序有问题。当我编译它时,列出了以下错误。我花了很多有时间上groups.google.com找原因,但是没有评论帮助过我。有人知道问题出在哪里吗?谢谢。errorLNK2001:unresolvedexternalsymbol"longrfl_xref_id"(?rfl_xref_id@@3JA)errorLNK2001:unresolvedexternalsymbol"

c++ - 在 VC++ 中解决 hid.lib "unresolved external symbol"链接器错误

如标题所示,我遇到以下链接器错误:errorLNK2019:unresolvedexternalsymbol"unsignedchar__stdcallHidD_GetAttributes(void*,struct_HIDD_ATTRIBUTES*)"(?HidD_GetAttributes@@YGEPAXPAU_HIDD_ATTRIBUTES@@@Z)在我的代码中调用result=HidD_GetAttributes(WriteHandle,&attributes)时。这个函数应该存在于“hid.lib”中,我已将其添加到项目的链接器依赖项中。我还包含了头文件“hidsdi.h”,它

c++ - 错误 LNK2001 : unresolved external symbol C++

在我之前编译良好的VC++代码中,我添加了一个函数X(),如下所示:InthefileBaseCollection.hclassBase{//codevirtualHRESULTX();//code};INthefileDerivedCollection.hclassDerived:publicBase{HRESULTX();}InthefileDerivedCollection.cppHRESULTDerived::X{//definitionofDerivedhere.}已将头文件正确地包含在.cpp文件中。但我仍然不明白为什么会出现链接错误:errorLNK2001:unreso

c++ - 使用 std::unique_ptr 的具有私有(private)析构函数的单例

我在我的程序中创建了所有单例,并牢记该文档:http://erdani.com/publications/DDJ_Jul_Aug_2004_revised.pdf(如果有人想知道为什么单例,它们都是工厂,其中一些存储一些关于它们应该如何创建实例的全局设置)。他们每个人看起来都像这样:声明:classSingletonAndFactory{staticSingletonAndFactory*volatileinstance;public:staticSingletonAndFactory&getInstance();private:SingletonAndFactory();Single

c++ - error LNK2019 : unresolved external symbol. c文件转cpp

有一个用C做的项目,它的文件是来自http://www.codeproject.com/Articles/185522/Using-the-Raw-Input-API-to-Process-Joystick-Input的RawInput.c。.我编译了它,它在vs2012中完美运行。但是当我在一个新项目的cpp中粘贴相同的代码时,我得到了其中的4个错误,只是不同的decleration名称。错误LNK2019:未解析的外部符号“long__stdcallHidP_GetCaps(struct_HIDP_PREPARSED_DATA....fatalerrorLNK1120:4个Unre

c++ - VC++ 中 Unresolved external 错误

我正在学习vc++,正在用代码查看内存的使用信息。这个程序给我三个Unresolvedexternal错误..errorLNK2019:unresolvedexternalsymbol_GetProcessMemoryInfo@12referencedinfunction"void__cdeclPrintMemoryInfo(unsignedlong)"(?PrintMemoryInfo@@YAXK@Z)errorLNK2019:unresolvedexternalsymbol_EnumProcesses@12referencedinfunction_mainerrorLNK1120: