学C++有多难,你知道吗?

本文探讨了C++相对于其他编程语言如Python和Java等的高难度原因,包括其贴近硬件模型、零开销抽象和兼容C的特点。通过具体的代码示例,解释了C++中静态成员变量的声明与定义、继承与构造、链接错误以及Segment Fault等问题,强调了C++学习过程中可能遇到的挑战,并提倡结伴学习以克服困难。
摘要由CSDN通过智能技术生成

都2020年了,还要学C++吗?C++好多理工科大学里面都有,它的学习难度比其他编程语言比如Python, Javascript, 和Java等等难。那为什么呢?

C++难的原因有三个基本点:

提供抽象的同时也贴近硬件模型

Zero-overhead的抽象

兼容C

详细展开

例子一

请问下面的代码能正确编译链接吗?

//book.cpp class Book { public: static int Count; Book() = default; ~Book() = default; } int main() { Book::Count += 1; }

答案是不能!class Book后面右花括号要有分号! 哪里?如果你写过Java,你会更吃惊!按我们的书写习惯,Book的右花括号已经可以表明类结束了。但是为了兼容C,分号必须要有。为什么呢?因为C里面可以书写下面的代码

struct Book { } book;

这样子定义了一个名为book的Book变量。所以C++也需要在定义类的结尾时候书写分号。这个分号我无数次忘记,幸好现在的IDE比较智能,都会提示出来。

把分号添加了以后,我们能成功编译吗?不能,因为不能成功连接。如果用下面的命令编译

g+&#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值