function-overloading相关内容

C ++模板函数重载规则

当重载模板函数时,如果它有以下选项,编译器应该如何选择调用哪个版本的函数: 调用函数的模板版本(例如 func(foo))。 函数本身不是模板,但是传递给函数的参数的类型从重载函数模板中指定的类型继承。 考虑以下C ++代码: #include struct Parent {}; struct Child:public Parent { ..

为什么类成员函数影子使用相同名称的自由函数?

我最近来到我的注意,成员函数完全 在类中有相同名称的自由函数。而完全地,我的意思是每个自由功能具有相同的名称不考虑重载分辨率。我可以理解为什么它做这样的事情: void f(); struct S { void f(); void g() { f(); //调用S :: f而不是:: f } }; 其中函数具有相同的签名,其唯一自然的变量范围 ..

在C ++中如何通常实现函数重载?

如果没有函数重载,函数名称将作为函数代码的地址,当函数被调用时,其地址很容易使用其名称查找。但是对于函数重载,程序如何才能找到正确的函数地址呢?是否有一个类似于虚拟表的隐藏表,存储重载的函数及其地址?非常感谢! 解决方案 编译器可以查看调用,并将其与已知的重载实现匹配,正确对象,真爱。 更新:删除了我在尝试通过展示来展示概念时所做的尝试。编译器可以选择不同命名的函数。 ..
发布时间:2016-10-17 09:10:37 C/C++开发

为什么不能通过返回类型重载函数?

可能的重复项: 按返回类型重载函数? 谜题:根据返回值重载C ++函数 因为我有一个库,它以如下形式暴露了一堆函数: bool GetVal double GetVal(); int GetVal(); long GetVal(); //所以。 现在我要包装这些。我宁愿不再重写相同的功能集。我想做一些像 template ..
发布时间:2016-10-14 11:22:00 C/C++开发

我们可以重载内置类型的运算符,如int或float?

我们可以在c ++中声明一个这样的函数: int operator +(int,int) 您的答案将不胜感激。 感谢 解决方案 您无法重新定义内置运算符。操作符重载 旨在允许您扩展语言,而不是更改 。重载操作符 的至少一个参数必须是用户定义的类型(类或枚举类型)或引用 到用户定义的类型。 ..
发布时间:2016-10-14 10:50:48 C/C++开发

如何重载的const和非const函数工作?

stl充满了这样的定义: iterator begin const_iterator begin()const; 由于返回值不参与重载解析,唯一的区别是函数 const 。这是过载机制的这一部分吗?编译器的算法用于解析一行,如: vector :: const_iterator it = myvector.begin(); 解决方案 ..
发布时间:2016-10-14 10:44:04 C/C++开发

模板专业化VS功能重载

教科书我注意到,您可以通过模板专门化为函数重载提供您自己的标准库函数的实现,例如 swap(x,y)。这对于可以受益于除了赋值交换之外的其他类型的任何类型是有用的,例如 STL容器(已经写入了交换,我知道)。 我的问题是: :模板专门化给你专门的 交换实现,或者函数重载提供你想要使用没有模板的确切的 参数。 为什么会更好? 解决方案 :重载,当你可以,专门在你需要时。 ..

虚拟方法重载解析

考虑代码 公共类基地 { 公虚拟INT添加(int类型的,INT b) { 返回A + b; } } 公共类派生:基本 { 公共覆盖INT添加(INT A,INT B) { 返回A + b; } 公众诠释添加(浮动,浮动B) { 回报率(的Int32)(A + B); } } 如果我创建派生类的一个实例,并调用添加用它为什么调用带有浮动参数的A ..
发布时间:2016-09-06 15:11:56 C#/.NET

C11型通用前pressions - 为什么不只是添加函数重载?

我只是读上 C11 维基百科的文章,C标准的新版本发布2011年12月,和我看到的附加功能之一是“类型的通用前pressions” 使用关键字_Generic型通用前pressions。例如,该 下面的宏CBRT(X)转换为cbrtl(X),CBRT(x)或cbrtf(X) 这取决于x的类型: 的#define CBRT(X)_Generic((X),长双:cbrtl,\\ ..
发布时间:2016-08-21 22:09:16 C/C++