C ++智能感知和错误检查问题

时间:2009-04-08 14:24:42

标签: c++ visual-c++ intellisense

使用Visual C ++ 2008.第一次,我正在尝试从C#过渡,并想尝试一下。我没有更改基本设置,除了智能块和一些颜色之类的一些东西。因为我在c ++知识上处于零级别,所以我所做的所有谷歌搜索都是我的头脑。

问题的第1部分 我的问题是我刚刚创建了我的第一个Windows窗体项目。既然我双击并进入这样的事情,intellisense没有列出任何成员?

private: System::Void executeDocumentationCmd_Click(System::Object^  sender, System::EventArgs^  e) 
{
this. NOTHING POPS UP?
}

如果我输入MessageBox::,则会弹出intellisense Show。这是正常的吗?我发现它很有帮助,因为我正在学习基础知识,列出可用的txt框和成员,但它不会像在C#intellisense中那样做。

我收录了stdafx.h。我删除了每个在线帮助的ncb文件并重新启动,没有。其他标题?

问题的第2部分:在C#编辑中没有实时编码中带下划线的错误。这是C ++ express具有的功能(编译前的错误检查)吗?当我输入错误的信息时,我没有看到任何警告或错误。

3 个答案:

答案 0 :(得分:2)

C ++中的

this是一个被->取消引用的指针而不是.

另外,VS2008中的C ++ intellisense没有C#那么有用,这包括没有错误检查。 VS2010将引入C ++的内联错误检查。

您需要注意C#和C ++之间存在一些非常大的差异。这是一个很大的话题,所以我不认为这里的帖子可以总结它们,但两个重点是缺乏垃圾收集(查找delete关键字)和指针。指针存在于C#中,但它们仅在unsafe代码块中可用,而在C ++中,指针几乎是王道。您可能希望投资一本书来帮助您学习。

答案 1 :(得分:1)

仅供参考,根据你的代码片段,你并没有真正使用C ++,而是使用不同语言的C ++ / CLI。

答案 2 :(得分:0)

对于一些历史,C ++专门设计为与C兼容,C#和Java不兼容。结果是C ++难以解析,因此使用C ++进行智能感知比使用C#更困难。我发现它很脆弱,并希望它在VS 2010中更好。

此外,与大多数语言相比,C和C ++在变量和指针之间有更多的区别。我不熟悉C#,但是在Java和Common Lisp等语言中,几乎所有东西都是指针,所以没有特别的符号。当我使用Pascal时,很少有东西用指针完成。 C和C ++是我用过的最容易混淆的语言。它们还允许指针运算,这是导致很多错误的原因。

我认为任何语言都不是一个非常好的语言,只是为了试图从中汲取C ++。我建议,只要你对C ++感兴趣,你就会把它当作一种新语言来学习。获得一个很好的现代介绍。