我一直在开发一个我绝对必须在C++中进行部分开发的项目。我需要开发一个包装器并将某些C++功能公开到我的C#应用​​程序中。从.NET刚开始以来,我一直是C#工程师,并且对C++的经验很少。在尝试理解语法时,对我来说看起来还是很陌生。

有什么可以让我震惊的事情,从而阻止我仅仅学习C++并继续前进吗?

最佳答案

C++有很多陷阱,我无法一一列举。搜索“C#vs C++”。需要了解的一些基本知识:
在C++中:

  • 结构和类基本上是同一件事(结构的默认可见性是公共(public)的,对于类是私有(private)的)。
  • struct和class都可以在堆或堆栈上创建。
  • 您必须自己管理堆。如果使用“new”创建某些内容,则必须在某个时候手动将其删除。
  • 如果性能不是问题,并且您需要移动的数据很少,则可以通过将所有内容放在堆栈上并使用引用(&运算符)来避免内存管理问题。
  • 学习处理.h和.cpp。无法解决的外部因素可能会加剧您的噩梦。
  • 您不应从构造函数中调用虚拟方法。编译器永远不会告诉您,我这样做。
  • 切换大小写不强制执行“break”并默认通过。
  • 没有接口(interface)之类的东西。相反,您的类具有纯虚方法。
  • C++爱好者是危险的人,生活在山洞中,并依靠C#/java程序员的鲜血生存。与他们仔细讨论他们最喜欢的语言。
  • 关于c# - C#至C++ 'Gotchas',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2147572/

    10-10 21:30