gpt4 book ai didi

c++ - 相同功能的不同实现(c/c++)

转载 作者:太空狗 更新时间:2023-10-29 20:21:43 26 4
gpt4 key购买 nike

头文件中声明的同一个函数是否可以有 2 个(或更多)不同的实现?我举个例子 - 假设我们有一个名为 common.h 的头文件和两个名为 src1.csrc2.c 的源文件>.

通用.h

//lots of common function declarations implemented in some file common.c 
int func(int a, int b);

src1.c

#include "common.h"

int func(int a, int b)
{
return a+b;
}

src2.c

#include "common.h"

int func(int a, int b)
{
return a*b;
}

假设我希望每个源文件都使用其本地版本的 func()。有可能吗?

最佳答案

是的,但是如果您尝试将您的主程序链接到 src1src2,您会遇到错误,因为它不知道要使用哪个定义。< br/> header 只是其他代码对象了解其他对象中可用内容的方式。将 header 视为契约(Contract)。合约应恰好执行一次,而不是零次或多次。如果您链接到 src1src2,您实际上已经填充了 int func(int a, int b); 契约两次。

如果需要在具有相同签名的两个函数之间交替,可以使用function pointers。 .

关于c++ - 相同功能的不同实现(c/c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41747225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com