小编Ben*_*Ben的帖子

使用结构重新定义C++函数

比方说,我在"foo.hpp"中有以下内容.我有一个函数具有相同名称的结构.

int foo(int i);

struct foo{
 foo(int i){ value = i;}
 operator int() {return value;}
 int value;
};
Run Code Online (Sandbox Code Playgroud)

如果我这样称呼它为主:

int main()
{
 std::cout << foo(1) << std::endl; // function is called, not the struct, why??
}
Run Code Online (Sandbox Code Playgroud)

为什么编译器总是链接函数而不是结构?如果可能,如何更改结构链接,而不是函数?

最后,我想通过添加额外的头文件并用struct覆盖函数来覆盖库中的函数.这样,我希望更改一个特定的功能,但继续使用所有其他库函数,而不是同时更改库代码.

c++ struct

3
推荐指数
1
解决办法
240
查看次数

标签 统计

c++ ×1

struct ×1