学习C++的主要方法是用C++编写大量代码。任何其他编程语言也是如此。
话虽这么说,但是在所有主流编程语言中,C++可能是最不适合初学者的。由于其复杂性,需要很长时间才能开发出良好的C++思维模型。这是一个例子。在C中,以下程序打印“Hello,world!”。跟换行符:
#includestdio.hintmain(){printf(“Hello,world!\n”);}
我确定有人向您解释了“\n”是一个特殊的序列,表示“换行”。因此,稍后,当您了解字符串变量时,可以编写此代码...
#includeiostream#includestringintmain(){std::strings=Hello,world!+std::endl;std::couts;}
(大概有人解释说,“%s”的意思是“打印字符串变量的内容。)
现在让我们来做C++
#includeiostreamintmain(){std::cout“Hello,world!”std::endl;}
有人向您解释说这将打印“Hello,World!”然后是换行符。因此,稍后您将了解C++中的字符串,然后尝试执行以下操作:
#includeiostream#includestringintmain(){std::strings=“Hello,world!!”+std::endl;std::couts;}
你猜怎么着?这不会编译。错误消息说:错误:类型为“constchar[14]”和“未解析的重载函数类型”的无效操作数为二进制“operator+”
为了完全理解原始程序的工作原理,您需要知道std::endl根本不是换行符。真正了解std::endl的工作原理是初学者无法掌握的。好的老师只能告诉你很多事情,在这一点上,std::endl是只有在将其发送到流中时才有意义的东西。但是,即使在第这种情况下,您也刚刚学会了一个看似简单的规则,而没有关于其工作原理的思维模型。除非您非常了解该语言,否则很多事情根本没有任何意义。
所以,C++对初学者来说并不友好。现在又有一个问题。C++非常复杂,以至于大多数C++程序员都不十分了解该语言,因此大多数有关C++的书都很烂。但是StackOverflow上的人们维护着一本不错的C++书籍清单:《权威的C++书籍指南和清单》。我强烈建议您选择其中一本并且至少要透彻阅读。
但是不要以为只要阅读完整本书,就会知道C++!除非您在编码的同时进行阅读,否则您会忘记阅读的大部分内容。如果您是大学生,则可以参加使用C++的课程。也许您将编写很多错误的代码。但是没关系,随着您对语言的慢慢了解,您可以返回并重写程序,也许效果更好。
一路上,您会遇到麻烦。你可以只搜索满足您需要的代码片段,然后将其粘贴到程序中并进行调整,直到可以正常工作为止。或者,您可以找出不了解的概念,并阅读一篇实际解释该概念的文章,从而了解如何为自己正确编写代码。如果您想很好地了解C++,那么不言而喻,您应该做后者!
在几个月甚至几年后,您将编写成千上万行C++代码,并且您通常对C++在大多数情况下的工作方式都有很好的了解。但是这种语言可能仍然令人沮丧。您可能偶尔会收到整页长的错误消息。此时,您将要真正了解C++的本质。所以你会怎么做?多读点书!另外,如果您对随机事物感到好奇,例如“嗯,我想知道我是否对此函数有两个重载,而其中一个将要被调用”,那么不要满足于我知道答案,而是为什么会这样!