在 C 语言中,如果 赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与 接收返回值类型不一致时,就需要发生类型转化 , C 语言中总共有两种形式的类型转换: 隐式类型 转换和显式类型转换 。...
拷贝只会放生在两个场景中:拷贝构造函数以及赋值运算符重载,因此 想要让一个类禁止拷贝, 只需让该类不能调用拷贝构造函数以及赋值运算符重载即可 。...
在我们异常一节就已经讲过,当使用异常的时候,几个函数层层嵌套,其中如果抛异常就可能导致没有释放堆区开辟的空间。这样就很容易导致内存泄漏。关于内存泄漏,我也曾在C++内存管理一文中写过。...
1. 终止程序 ,如 assert ,缺陷:用户难以接受。如发生内存错误,除 0 错误时就会终止程序。
在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人...
继承这个词对我们来说应该不陌生,在现实生活中,你作为你父亲的继承者之一可以获得你父亲的财产,直接少奋斗N年。这里的继承也差不多是这个意思:在一个程序中有很多不同的类,但是这些类可能有共同的属性(成员变量或成员方法),...
在C语言中我们使用最频繁的输入输出方式是 scanf () 与 printf():
在 C++11 之前,由于 C++ 没有对各平台的线程接口进行封装,所以当涉及到多线程编程时,编写出来的代码都是和平台相关的,因为不同平台提供的线程相关接口是不同的;这就导致代码的可移植性比较差。C++11 一个很重要的改动就是...
隐式类型转换适用于相似类型之间的转换,比如 char、int、double 这类整形家族之间的互转;而强制类型转换适用于不相关类型的转换,比如 int 和 int*。
关于如何设计一个不允许被拷贝的类,其实我们之前在 C++11 右值引用和移动语义 学 default 和 delete 关键字的时候就讲过,这里我们再来回顾一下。