C++ 在重载函数中使用 "base" 函数

C++ using a "base" function inside an overload function

我在编码时遇到了一个问题。

我使用投影 2D-Space(即 2D 点 (x,y) 和 3D 点 (x,y,w))。 我还有一个接受投影点(3D)的功能。 为了更好地阅读并避免在 main 中强制转换,我尝试为该函数编写一个重载,该函数接受 2D 点并调用 "base" 函数(简单示例)。 但是编译器不编译代码。似乎有一个 link 错误 (LNK 2001)。

//"base" function
foo(3D_pt pt)
{
      //do something with it
}

//overloaded function
foo(2D_pt pt)
     3D_pt pt3 = 3D_pt(pt.x, pt.y, 1);
     foo(pt3);
}

有什么想法吗?

谢谢

编辑: 错误是: LNK2001: 未解析的符号 - foo(2D_pt pt)

发布的代码中唯一的问题是:

#1:您的 class 名称(2D_pt3D_pt)以数字开头,而 C++ 中的标识符不应该这样做(Cplusplus.com)。

#2: 函数 foo 没有 return 类型。

#3:foo(2D_pt) 中缺少 {

修复后,一切正常构建:ideone