草庐IT

name-mangling

全部标签

c++ - 多重继承 : same variable name

classA{protected:stringword;};classB{protected:stringword;};classDerived:publicA,publicB{};在Derived中变量word的可访问性会受到怎样的影响?我该如何解决? 最佳答案 这将是模棱两可的,你会得到一个编译错误。您需要使用正确的范围来使用它:classDerived:publicA,publicB{Derived(){A::word="A!";B::word="B!!";}}; 关于c++-多重

c++ - 错误 : incomplete type used in nested name specifier

有2个非模板类A,B有一些静态模板方法。从类A调用B中的静态方法,并从类B调用A中的静态方法.源代码仅供说明(非真实代码)...啊.h#include"B.h"classA{public:templatevoidf1(){Tvar1=...;Tvar2=B::f4(T);}templateTf2(){return...}};#include"A.h"classB{public:templatevoidf3(){Tvar1=...;Tvar2=A::f2(T);//Error}templateTf4(){return...}};我在使用NetBeans中的g++编译器时遇到问题。在编译过

c++ - 错误 : incomplete type used in nested name specifier

有2个非模板类A,B有一些静态模板方法。从类A调用B中的静态方法,并从类B调用A中的静态方法.源代码仅供说明(非真实代码)...啊.h#include"B.h"classA{public:templatevoidf1(){Tvar1=...;Tvar2=B::f4(T);}templateTf2(){return...}};#include"A.h"classB{public:templatevoidf3(){Tvar1=...;Tvar2=A::f2(T);//Error}templateTf4(){return...}};我在使用NetBeans中的g++编译器时遇到问题。在编译过

c++ - 为什么我的程序集输出中有两个析构函数实现?

这个问题在这里已经有了答案:GNUGCC(g++):Whydoesitgeneratemultipledtors?(2个回答)关闭5年前.我的.o文件的objdump显示我有两个不同的析构函数用于同一个类。为什么?Disassemblyofsection.text._ZN1AD0Ev:0000000000000000:0:53push%rbx1:be00000000mov$0x0,%esi6:4889fbmov%rdi,%rbx9:48c70700000000movq$0x0,(%rdi)10:ba2c000000mov$0x2c,%edx15:bf00000000mov$0x0,%e

c++ - 为什么我的程序集输出中有两个析构函数实现?

这个问题在这里已经有了答案:GNUGCC(g++):Whydoesitgeneratemultipledtors?(2个回答)关闭5年前.我的.o文件的objdump显示我有两个不同的析构函数用于同一个类。为什么?Disassemblyofsection.text._ZN1AD0Ev:0000000000000000:0:53push%rbx1:be00000000mov$0x0,%esi6:4889fbmov%rdi,%rbx9:48c70700000000movq$0x0,(%rdi)10:ba2c000000mov$0x2c,%edx15:bf00000000mov$0x0,%e

c# - "Unable to find an entry point named [function] in dll"(c++到c#类型转换)

我有一个来自第三方的dll,它是用C++编写的。以下是来自dll文档的一些信息://startdocumentationRECO_DATA{wchar_tSurname[200];wchar_tFirstname[200];}说明:接收函数结果的数据结构。所有函数结果将是存储为Unicode(UTF-8)。方法:boolrecoCHN_P_Name(char*imgPath,RECO_DATA*o_data);输入:char*imgPath此图像位置的完整路径识别功能RECO_DATA*o_data接收函数的数据对象结果。函数返回:成功则返回true,否则返回false。//enddo

c# - "Unable to find an entry point named [function] in dll"(c++到c#类型转换)

我有一个来自第三方的dll,它是用C++编写的。以下是来自dll文档的一些信息://startdocumentationRECO_DATA{wchar_tSurname[200];wchar_tFirstname[200];}说明:接收函数结果的数据结构。所有函数结果将是存储为Unicode(UTF-8)。方法:boolrecoCHN_P_Name(char*imgPath,RECO_DATA*o_data);输入:char*imgPath此图像位置的完整路径识别功能RECO_DATA*o_data接收函数的数据对象结果。函数返回:成功则返回true,否则返回false。//enddo

c++ - 在 Itanium C++ ABI 中,为什么模板函数的错误名称无法解析依赖的 typedef?

例如:templatestructfoo{usingbar=int;};//_Z3bazivoidbaz(foo::barquux){}templatevoidbaz(typenamefoo::barquux){}//_Z3bazIiEvN3fooIT_E3barEtemplatevoidbaz(foo::barquux);为什么baz的格式不正确?提foo有吗?怎么不是_Z3bazIiEvi?这显然是C++17std::default_order的原因。提案已死在水中。 最佳答案 问题来自在ABI中构建。为什么我们要使用未解析的名

c++ - 在 Itanium C++ ABI 中,为什么模板函数的错误名称无法解析依赖的 typedef?

例如:templatestructfoo{usingbar=int;};//_Z3bazivoidbaz(foo::barquux){}templatevoidbaz(typenamefoo::barquux){}//_Z3bazIiEvN3fooIT_E3barEtemplatevoidbaz(foo::barquux);为什么baz的格式不正确?提foo有吗?怎么不是_Z3bazIiEvi?这显然是C++17std::default_order的原因。提案已死在水中。 最佳答案 问题来自在ABI中构建。为什么我们要使用未解析的名

c++ - 中缀 vs 前缀语法 : name lookup differences

C++中的运算符通常被认为是函数/方法的替代语法,尤其是在重载的上下文中。如果是这样,下面的两个表达式应该是同义词:std::cout在实践中,第二条语句会导致以下错误:callofoverloaded‘operator像往常一样,这样的错误信息伴随着一个可能的候选列表,它们是:operator&__out,char__c)operator&__out,char__c)operator&__out,signedchar__c)operator&__out,unsignedchar__c)这样的错误至少引发了两个问题:这两个语句有何不同(在名称查找方面)?为什么operator&__ou