我想覆盖具有相同参数类型但具有不同逻辑含义的函数。我试过类似的东西:
class T
{
};
typedef T Age;
typedef T Height;
typedef T Weight;
void foo(Age a){}
void foo(Height a){}
void foo(Weight a){}
但我有构建错误:错误 C2084:函数 'void foo(Age)' 已经有一个主体
一种解决方案是:
class Age : public T{};
class Height : public T{};
class Weight : public T{};
但我不想仅仅为此目的用新类填充我的命名空间。
在不使用派生类的情况下如何实现这一点?
编辑:我的代码在一个 cpp 文件中,我不使用标题。这只是一个简单的例子。完整的 cpp 内容在这里:
class T
{
};
typedef T Age;
typedef T Height;
typedef T Weight;
void foo(Age a){}
void foo(Height a){}
void foo(Weight a){}
int main()
{
return 0;
}
错误消息:.cpp(10): error C2084: function 'void foo(Age)' has a body