Loading

摘要: C++编辑器允许两种类型之间的隐式转换,继承了C的类型转换方法,因此可以将short类型值传入接收int类型值的函数并正确编译允许。隐式转换可以方便运算和函数调用,但错误的转换可能导致数据丢失,如int类型转为short类型,而且这样的隐式转换错误很难发现。 隐式类型转换也支持类,通过类的单参数构造 阅读全文
posted @ 2021-08-08 23:14 sandersunkown 阅读(78) 评论(0) 推荐(0)
摘要: 缺省构造函数即没有参数或所有参数都声明了默认值的构造函数,可以在没有任何外部数据下初始化对象。当类没有声明构造函数,编译器会提供一个隐式缺省构造函数。 借由缺省构造函数创建的对象,其成员变量被初始化为固定的或是不确定的值,不能保证类的成员都被正确初始化。当类有一个无意义的缺省构造函数,未能将所有部分 阅读全文
posted @ 2021-08-03 21:20 sandersunkown 阅读(144) 评论(0) 推荐(0)
摘要: C++提供了4个特殊的强制转换运算符,分别是: 通用转换运算符(TYPE)本身太过粗暴直接,不能精确的描述C中各种类型转换情况。__这些转换运算符面向C使用场景设计,相比C风格转换有了更多限制,可以规避多义、多态下转换的风险。__ 他们的运算优先级为2,和通用转换运算符相同,使用格式为: cast- 阅读全文
posted @ 2021-08-02 21:41 sandersunkown 阅读(70) 评论(0) 推荐(0)
摘要: 指针和引用本质都是某一对象的虚拟内存地址,程序可以皆由它们修改指向的实例。 引用必须在声明时初始化,且指向有效的对象 一般变量和指针在声明时可以不初始化,而且指针经常一开始定义为空,引用则总是指向有效的对象。因此,在调用引用对象时不需要像调用指针一样做空判断,使用效率更高。 引用只能在初始化时赋值, 阅读全文
posted @ 2021-08-02 20:21 sandersunkown 阅读(72) 评论(0) 推荐(0)
摘要: 不要对数组使用多态 数组中每个元素的内存间隔是sizeof(type),数组下标索引根据数据类型的大小做偏移array + index * sizeof(type)。这要求编译器明确数组对象类型的大小。 但在多态中,基类指针或引用的实际类型是不明确的,编译器没法确定数组每个元素的间隔。 C++允许通 阅读全文
posted @ 2021-08-01 23:37 sandersunkown 阅读(61) 评论(0) 推荐(0)