使用C ++

时间:2016-02-09 23:28:02

标签: c++ c ubuntu gnu

我刚刚加入了一个项目,并且有一堆代码(过去5年里由4或5个不同的人编写)。在这一点上它都是C,但我想将项目迁移到C ++以利用OOP。

步骤1将简单地保留所有现有代码,并有选择地将非常小的功能部分转换为面向对象。

我的理解是C可以用C ++编译,但也许我错了。

所以,在我花费大量时间尝试实际操作之前,我是否可以相对轻松地使用C ++编译现有的C代码?

或者,这是否可能涉及大规模迁移才能发挥作用?

哪些因素会影响我提议的任务的复杂性?

所以要明确 - 我询问将所有代码转换为对象,将函数转换为方法等等的项目有多大 - 而是,我只是& #39; m可能面临使用C ++编译器而不是C编译器编译现有C代码。

提前致谢 - 我期待您提供任何帮助/指导。

修改

听起来真的不是个好主意。我一直认为c ++是C的扩展,但听起来他们的不同之处在于它不是一条可取的路径。最终,我并没有将它们视为不同的语言,并且希望c ++与c语言的向后兼容性比它听起来更像。我最初的搜索看起来人们已经做到了不同程度的成功,但这里的回答让我觉得我应该真的只考虑它们是两种不同的语言。谢谢!

2 个答案:

答案 0 :(得分:3)

  

我一直认为c ++是C的扩展,但听起来他们的不同之处在于这不是一条可取的路径。

C ++ 是C的扩展。它们是完全不同的语言。使用C ++编译C代码不仅仅是启用" OO-mode"。当您使用C ++编译器编译除了微不足道的C代码之外的任何东西时,由于两种语言之间的差异,您可能会让自己陷入伤害的世界。

  我可能能够相对容易地使用C ++编译现有的C代码吗?

同样,你有一个根本的误解 - C ++ C的某些扩展版本。它们是不同的语言。

最好的做法是将代码慢慢迁移到C ++,但使用两个不同的编译器。使用C编译器编译C代码,并使用C ++编译器编译C ++代码。这不是一个具有挑战性的壮举,因为任何现代编译器套件(如GCC和clang)都可以很好地编译C和C ++。

  

这可能会导致大规模迁移才会起作用吗?

如果您打算将代码转换为C ++,那么是。

值得一提的是:如果您使用C ++编译器编译C代码并将其称为C ++编程,那么您就会忽略C ++开发环境的精神。如果您使用C ++进行编程,但使用的C代码只有很少的OO,那么使用C ++的重点是什么?只需跳过OO的开销和C代码。使用C ++编译器并不是一个能让你的代码更好的神奇过程。

答案 1 :(得分:0)

我认为您应该查看here以获取(可能的)问题列表。

我过去为C到C ++的制作所做的就是让C代码正常工作(使用C编译器编译C代码),并且 - 并行 - 在C ++中从头开始重写代码。