上一页 1 ··· 6 7 8 9 10 11 12 下一页
摘要: 对象动态建立和释放 new 和delete 在软件开发过程中,常常需要动态地分配和撤销内存空间,例如对动态链表中结点的插入与删除。在C语言中是利用库函数malloc和free来分配和撤销内存空间的。C++提供了较简便而功能较强的运算符new和delete来取代malloc和free函数。 new和d 阅读全文
posted @ 2018-10-16 16:41 悦悦的小屋 阅读(954) 评论(0) 推荐(0) 编辑
摘要: 如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,没有默认构造函数,这时要对这个类成员进行初始化,就必须调用这个类成员的带参数的构造函数,如果没有初始化列表,那么他将无法完成第一步,就会报错。 构造函数中调用构造函数很危险。 当类成员中含有一个const对象 阅读全文
posted @ 2018-10-16 13:44 悦悦的小屋 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 系统提供默认的拷贝构造器,一经定义不再提供。但系统提供的默认拷贝构造器是 等位拷贝,也就是通常意义上的浅拷贝。如果类中包含的数据元素全部在栈上,浅拷贝 也可以满足需求的。但如果堆上的数据,则会发生多次析构行为。 示例代码: 浅拷贝: 以上代码的图示如下: 调用test()时,首先调用(t1)构造函数 阅读全文
posted @ 2018-10-16 10:31 悦悦的小屋 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 1.我们在编译老的用C语言的开源项目如lua源包的时候,可能因为一些老的.c文件使用了strcpy,scanf等不安全的函数,而报警告和错误,而导致无法编译通过。 2.此时我们有两种解决方案: a.在指定的源文件的开头定义:#define _CRT_SECURE_NO_WARNINGS (只会在该文 阅读全文
posted @ 2018-10-16 09:31 悦悦的小屋 阅读(2609) 评论(0) 推荐(2) 编辑
摘要: 屏幕输出: 结论: 结论一:func2()函数 返回一个元素。 函数的返回值是一个元素(复杂类型的),返回的是一个新的匿名对象(所以会调用匿名对象类的拷贝构造函数); 结论二:有关 匿名函对象的去和留 如果用匿名对象 初始化 另外一个同类型的对象,匿名对象转成有名对象; 如果用匿名对象 赋值给 另一 阅读全文
posted @ 2018-10-15 22:54 悦悦的小屋 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 默认构造函数 二个特殊的构造函数(1)默认无参构造函数 当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空;(2)默认拷贝构造函数 当类中没有定义拷贝构造函数时,编译器默认提供一个默认拷贝构造函数,简单的进行成员变量的值复制。 总结: 类中 会有个默认的无参构造函数: >当没 阅读全文
posted @ 2018-10-15 20:13 悦悦的小屋 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 无参数构造函数、有参数构造函数、赋值构造函数 (3)拷贝构造函数 由已存在的对象,创建新对象。也就是说新对象,不由构造器来构造,而是由拷贝构造器来完成。拷贝构造器的格式是固定的。 拷贝构造函数的作用:用一个对象初始化另外一个对象 阅读全文
posted @ 2018-10-15 17:05 悦悦的小屋 阅读(833) 评论(0) 推荐(0) 编辑
摘要: 如果我们没有定义构造函数,系统会为我们自动定义一个无参的默认构造函数的,它不对成员属性做任何操作,如果我们自己定义了构造函数,系统就不会为我们创建默认构造函数了。析构函数也是如此,只不过析构函数无参数,无函数重载。 阅读全文
posted @ 2018-10-15 16:09 悦悦的小屋 阅读(802) 评论(0) 推荐(0) 编辑
摘要: 1、如果没有析构? 如果不用构造函数初始化,该怎么办: 为每个类都提供一个public的initialize函数; 对象创建后立即调用initialize函数进行初始化。 缺点1)initialize只是一个普通的函数,必须显示的调用2)一旦由于失误的原因,对象没有初始化,那么结果将是不确定的没有初 阅读全文
posted @ 2018-10-15 15:33 悦悦的小屋 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 多个文件实现: 一个文件实现: 阅读全文
posted @ 2018-10-15 13:44 悦悦的小屋 阅读(992) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 下一页