为啥 c++ 类定义中的公共引用
Posted
技术标签:
【中文标题】为啥 c++ 类定义中的公共引用【英文标题】:Why public ref in c++ class definition为什么 c++ 类定义中的公共引用 【发布时间】:2009-08-05 08:01:02 【问题描述】:首先,我想明确一点,这对 C++ 来说是全新的,所以这可能是一个简单且有些明显的问题。在我正在阅读的名为 C++ Primer 的 C++ 书中,类是通过以下方式定义的:
class classname
public:
private:
;
但是,在 VS2008 中,编译器不喜欢这样。但是通过在课前添加公共参考,如:
public ref class classname
它在编译器中通过。谁能解释一下只用类和公共参考类定义有什么区别?我真的很感激。
【问题讨论】:
这是你想问的问题:***.com/questions/1195572/… “不喜欢这个”不是 VS2008 产生的错误消息。如果 OP 指定了错误消息,也许答案不会那么糟糕。 【参考方案1】:ref
语法是 Microsoft 扩展,仅在托管 C++ 中使用。根据您在创建项目时错误地轻弹/clr
编译器开关的声音。如果你想做的只是创建真正的 C++ 程序,那么你会想要恢复它。
【讨论】:
在 Visual Studio 中选择错误的项目类型可能会在您不知不觉中自动打开 /clr。我想创建一个新的 dll 库并最终犯了这个错误。相反,我应该使用 Win32 控制台应用程序项目类型,这对我作为新手来说并不明显。有关详细信息,请参阅this MSDN page。 澄清...微软从 .Net 产生了两种与 C++ 交互的方法第一种(违反 ISO C++)是“托管 C++”,这已经过时了。第二个(符合 ISO 标准,即使在今天仍然有效)是 C++/CLI 这很重要,因为当使用错误的名称时,搜索结果会将读者引向 primrose 路径...【参考方案2】:您正在阅读一本名为 C++ Primer 的书,该书教授 C++ 编程语言,而您正在尝试创建一个程序,告诉 VC++ 代码位于 C++/CLI 中,这是一种不同的编程语言....
【讨论】:
+1 使用您所学的相同语言进行编程通常会有所帮助。【参考方案3】:您(编辑: 和其他用户)将此问题标记为:
两种编程语言:C++和C++/CLI, 一个由 Microsoft 提供的商业 集成开发环境 (IDE):Visual C++,可让您使用三种不同的语言(C、C++ 和 C++/CLI)进行编程)。在帖子中,您提到了 Microsoft Visual Studio 2008,它是 Visual C++ 的超集。 一个语言扩展集:Managed C++,在历史上曾指代很多不同的事物,坦率地说,我现在不确定它是什么意思 :)但是,您的首要目标应该是了解如何配置 Visual C++ 以使用您选择的语言 C++ 进行编程。
像往常一样,找到这个问题的答案的一个好方法是在“”页面中输入它,然后查看建议的相关问题。这是最好的,我认为:compiling "standard" C++ in visual studio (non .net).
【讨论】:
* AProgrammer 在阅读问题后重新标记了添加 C++/CLI 的问题。 OP 对此一无所知。【参考方案4】:您正在学习标准的 C/C++ 语言吗?如果答案是肯定的,那么该语法与 Microsoft C++/CLI 语言有关...
看:C++/CLI
尝试使用带有 C++ 扩展的 Eclipse。它提供了创建和执行标准 C++ 程序所需的一切!
Eclipse download
【讨论】:
他正在阅读 C++ 书籍,所以我推测他正在学习 C++。为什么要为 Eclipse 做广告? VC++ 是一个完善的 IDE / 编译器,可以在 Windows 上创建 C++ 程序。您只需要确保选择正确的项目类型。如果有人决定选择一个 Java 项目然后尝试编写一个 C++ 程序,那么 Eclipse 之类的问题仍然存在。 @KTC:因为 VC++ 主动将您从 ISO C++ 路径转移。 “安全”CRT,有人吗?以上是关于为啥 c++ 类定义中的公共引用的主要内容,如果未能解决你的问题,请参考以下文章