c++ - 在 C++ 的编译过程中如何在内部表示重载函数

标签 c++ c overloading

<分区>

Possible Duplicate:
In C++ how is function overloading typically implemented?

我正在阅读 bruce eckel 的关于 OOPS 的书,其中说明了处理重载函数以防它们在返回值和传递的参数方面存在差异。


int fun() :: could be represented as __int__fun
float fun():: could be represented as __float__fun
int fun(int a):: as _int _fun_int

但是在 c 中的 block 的情况下重载是如何工作的

               {
                  void fun(){}
                  ...........
                  ..
                  fun()
               }
               /......sme code/
               {
                   void fun(){}
               }

谁能解释一下这在内部是如何表示的?

最佳答案

在 block 内定义函数在 C++ 中是不合法的。

如果我们暂时想象这样的事情是合法的,那么您的两个函数仍然没有重载。它们只是具有不重叠的范围。你的例子与这个没有什么不同:

  {
     int i;
     ...
  }
  {
     int i;
     ...
  }

此处没有“重载变量”,您的示例中也没有重载函数。

关于c++ - 在 C++ 的编译过程中如何在内部表示重载函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10054913/

相关文章:

c - C 中宏的作用域?

asp.net-mvc - 如何重载 MVC Controller 以避免重复公共(public)代码?

c++ - QueryDisplayConfig 不返回任何记录的值

c++ - OpenGL/GLUT 我的光照方法正确吗?

c - C 中的 return 关键字是停止下一条语句的编译还是只是执行?

C# 构造函数重载 : new object. FromOtherObject()?

java:重载时返回类型不同

c++ - 使用 win32 构建 C++ 代码的任何提示?

c++ - sdl_net 应用程序无法正确启动(0xc000007b)

c - C 有标准的 Queue 实现吗?