C++
文章平均质量分 52
金创想
这个作者很懒,什么都没留下…
展开
-
强制结束输入的方法
如果输入:2 CTRL+Z,结果和前面一样,也能实现强制结束输入的效果,有人就会误认为这里是CTRL+Z起到了发出“输入结束”信号的作用。从表中可以看出,输入“2 x”和“2 CTRL+Z”无论是求和结果还是scanf函数的返回值都是一样的,因此二者是一回事,都是靠输入类型不匹配实现强制结束输入。一文中讲过, Windows的输入结束信号是Ctrl+Z,具体步骤是:输入完毕后按Ctrl+Z键,再按Enter键,即可结束输入。如果scanf要求输入两个数,现在只输入一个数,想要结束输入该怎么办呢?原创 2024-09-02 11:52:50 · 676 阅读 · 0 评论 -
将结构体加入队列的方法
列表初始化也称花括号初始化,这种语法允许直接在需要对象的地方使用花括号来初始化其成员,而无需显式调用构造函数。这种方式是在C++11才开始支持的初始化方式。这里面的重点在于用push将结构体加入队列时参数的写法,其实它的参数就是一个结构体的实例。但这里指定结构体类型是没有必要的,因为编译器可以通过上一行代码自动推导参数的类型为point型,因此前者写法更为简洁。这种方式需要先在结构体中写个了构造函数,然用利用构造函数对结构体进行初始化。(3)使用queue的成员函数push()将结构体添加到队列。原创 2024-08-14 14:48:19 · 219 阅读 · 0 评论 -
C++的“引用”是条寄生虫
普通的变量是以“传值”的方式传递参数,需要将实参的值复制给形参,在函数中改变的是形参,而不是赋值给形参的实参。这就像我盖了一个和我的房子一模一样房子送给你,这个工程量是很大的,而且你装修是你的房子。引用在内部实现上也是用了指针的,但是用引用会更方便(语法层面,引用不需要用&获取地址,也不需用*访问数据)。指针以“传址”的方式传递参数,传过去的是地址,在函数中是能改变实参的。引用是以“传名”的方式传递参数,传过去的是变量的名字,在函数中也是能改变实参的。这就像我把我的房子的名字告诉你,你一样能找到我的房子。原创 2024-06-07 16:21:46 · 1062 阅读 · 0 评论 -
运算符的重载
运算符重载实质上是一种特殊的函数重载,只不过这些函数的名字很特别,以“operator运算符”的形式命名,例如,operator+用于重载加法运算符,operator==用于重载等于运算符。这时便可应用重载,自己预先写好坐标相加的实现函数,然后就可以像浮点数相加一样使用+号计算两个坐标的相加值。当重载一个运算符时,你实际上在告诉编译器:“当这个运算符应用于老子的自定义类型时,得按老子写好的方式执行”。上面的代码有些地方可能不是很好懂,但应该可以大致看明白它是怎么实现运算符的重载的。原创 2024-06-06 18:12:34 · 476 阅读 · 0 评论 -
内置类型知多少?
整型:int、short、long、long long、unsigned int、unsigned short、unsigned long、unsigned long long 等。专有,作为变量的别名。严格来说它并不是一种数据类型,但其内部是用指针实现的,而且也不需要用户自定义,可以看作是一种内置类型。内置类型(也称为基本类型或原生类型)是C/C++本身定义的数据类型,它们直接由编译器支持,不需要用户自定义。通过enum关键字定义的,每个枚举成员通常都有一个内置的整数类型作为其底层类型。原创 2024-06-06 18:07:50 · 237 阅读 · 0 评论 -
函数的“重载”,全人工打造未解之谜
对敌人展开攻击时,装的机枪叫“射击”,装的大炮叫“开炮”,装的导弹叫“发射”,但你也可以都叫一个名字——“干它”。可能,为了去除这种味道,译者大刀阔斧地进行了改革,去其“超”,取其“多”,从而译成“重载(chóng zài)”(大多数人习惯叫chóng zǎi,这样更顺口,无伤大雅)。②副+动:over作副词,表“在上”,load作动词,表“装载”,overload指“在上面装载”,就是在一个东西上装这装那。通过重载,我们可以使用同一函数名实现不同的功能,相当于“一词多义”,在编程中称这个叫“多态性”。原创 2024-06-05 17:36:36 · 647 阅读 · 0 评论