c++ - 使用自定义类型定义多个同名函数
问题描述
我一直在玩 C++,我注意到一些我不太理解的东西:
typedef float degrees;
typedef float radians;
void my_func(degrees n);
void my_func(radians m);
像这样声明一个函数,我收到一个警告,该函数被重新声明,好像它们是相同的。这是否意味着,在查看函数定义时,编译器只看到内置类型而不关心自定义类型,并且由于它们是机器人浮点数,它只是认为它们是同一个函数?...
如果是这种情况,我该如何解决?我只需要制作不同的功能吗?
解决方案
您可以定义类来处理这些问题。看这个例子:
class Degree{
public:
double angle;
Degree(){}
void my_func(){
// do some job
}
};
class Radian{
public:
double angle;
Radian(){}
void my_func(){
// do some job
}
};
int main(){
Degree deg;
Radian rad;
deg.my_func();
rad.my_func();
}
现在他们在各自的职能中执行不同的任务。
或者,如果您不想创建对象,则可以在这些类中创建静态函数。
class Radian{
public:
static void my_func(float radian){
// do some job
}
};
typedef float degrees;
typedef float radians;
int main(){
radians rad;
Radian::my_func(rad)
}
推荐阅读
- spatial - 调查包/DHS 数据:无意义的标准错误
- python - 可以在 conftest 中进行会话设置而无需在第一次测试中完成设置吗?
- angular - Angular Element:DOMException:无法在“CustomElementRegistry”上执行“define”
- java - Elasticsearch 6.3.0 jarhell 模块信息类
- jetbrains-ide - Goland 文件中的函数列表
- sql - 试图将表与我的员工表合并
- angular - 如何在自定义 Angular Schematics 中定位文件路径?
- pandas - 转换 Pandas 数据框偶数列的 DateFormat
- oop - 插件设计模式解释(如 Martin Fowler 所述)
- node.js - Google Stackdriver 错误报告 API - 包含自定义数据