随笔分类 -  编程语言及数据结构 / C++

该文被密码保护。
posted @ 2021-09-21 22:23 一代枭雄 阅读(4) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2021-09-19 21:54 一代枭雄 阅读(7) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2021-09-19 15:04 一代枭雄 阅读(3) 评论(0) 推荐(0) 编辑
摘要:实验一:证明new_handler全局函数是否存在 #include <iostream> #include <new> #include <cstdlib> #include <exception> using namespace std; class Test { int m_value; pu 阅读全文
posted @ 2020-02-13 09:58 一代枭雄 阅读(255) 评论(0) 推荐(0) 编辑
摘要:动态内存申请一定成功吗?常见的动态内存分配代码 C代码: int* p = (int*)malloc(10 * sizeof(int)); if( p!=NULL ) { //... ... } C++代码: int* p = new int[10]; if( p!=NULL ) { //... . 阅读全文
posted @ 2020-02-13 09:42 一代枭雄 阅读(219) 评论(0) 推荐(0) 编辑
摘要:问题:如何判断一个函数是否会抛出异常,以及抛出哪些异常?假设在开发的时候,调用一个函数来完成某项任务,这个函数不是你写的或者是第3库中的一个函数,那么问题来了,你如何确定这个函数会不会抛出异常呢?为什么要搞清这个问题,因为我们学习了异常处理,那么我们在调用一个函数的时候,就必须考虑这个函数会不会抛出 阅读全文
posted @ 2020-02-12 22:45 一代枭雄 阅读(286) 评论(0) 推荐(0) 编辑
摘要:问题:如果在main函数中抛出异常会发生什么? #include <iostream> using namespace std; class Test { public: Test() { cout << "Test()" << endl; } ~Test() { cout << "~Test()" 阅读全文
posted @ 2020-02-12 21:25 一代枭雄 阅读(257) 评论(0) 推荐(0) 编辑
摘要:new[]/delete[]与new/delete完全不同-动态对象数组创建通过new[] 完成-动态对象数组的销毁通过delete[]完成-new[]/delete[]能够被重载,进而改变内存管理方式 new[]/delete[]的重载方式 //static member function voi 阅读全文
posted @ 2020-02-11 21:02 一代枭雄 阅读(395) 评论(0) 推荐(0) 编辑
摘要:如果已经掌握在静态存储区上创建对象的方法,那么可以扩展一下,可以在任意地址上创建C++对象。 解决方案:-在类中重载new/delete操作符-在new的操作符重载函数中返回指定的地址-在delete操作符重载中标记对应的地址可用 自定义动态对象的存储空间 第二个实验指定了空间为静态存储区中的空间, 阅读全文
posted @ 2020-02-11 20:24 一代枭雄 阅读(1193) 评论(0) 推荐(0) 编辑
摘要:#include <iostream> #include <string> using namespace std; class Test { private: static const unsigned int COUNT = 4; static char c_buffer[]; //首先定义一个 阅读全文
posted @ 2020-02-11 19:38 一代枭雄 阅读(253) 评论(0) 推荐(0) 编辑
摘要:new关键字创建出来的对象位于什么地方?很明显嘛,new关键字创建出来的对象一定位于堆空间,这种说法一定正确吗?本篇博客帮你揭开其神秘的面纱。 被忽略的事实new/delete的本质是C++预定义的操作符C++对这两个操作符做了严格的行为定义-new:1.获取足够大的内存空间(默认为堆空间)2.在获 阅读全文
posted @ 2020-02-11 13:16 一代枭雄 阅读(299) 评论(0) 推荐(0) 编辑
摘要:实例1:适用于非const对象 #include <iostream> #include <string> using namespace std; class Test { private: int m_value; int m_count; public: Test(int value = 0) 阅读全文
posted @ 2020-02-11 12:59 一代枭雄 阅读(250) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-12-11 22:23 一代枭雄 阅读(33) 评论(0) 推荐(0) 编辑
摘要:1.编写一个程序判断一个变量是不是指针? 拾遗-C++中仍然支持C语言中的可变参数函数-C++编译器的匹配调用优先级1.重载函数2.函数模板3.变参函数 #include <iostream> #include <string> using namespace std; class Test { p 阅读全文
posted @ 2019-12-11 22:10 一代枭雄 阅读(765) 评论(0) 推荐(0) 编辑
摘要:C++中如何得到动态类型? #include <iostream> #include <string> using namespace std; class Base { public: virtual string type() { return "Base"; } }; class Derive 阅读全文
posted @ 2019-12-11 21:32 一代枭雄 阅读(196) 评论(0) 推荐(0) 编辑
摘要:array.h HeapArray.h 阅读全文
posted @ 2019-12-09 22:42 一代枭雄 阅读(187) 评论(0) 推荐(0) 编辑
摘要:为什么要在catch中重新抛出异常? 阅读全文
posted @ 2019-12-09 22:31 一代枭雄 阅读(314) 评论(0) 推荐(0) 编辑
摘要:C++内置了异常处理的语法元素try... catch ...-try语句处理正常代码逻辑-catch语句处理异常情况-try语句中的异常由对应的catch语句处理 C++通过throw语句抛出异常信息 C++异常处理分析-throw抛出的异常必须被catch处理 当前函数能够处理异常,程序继续往下 阅读全文
posted @ 2019-12-09 21:49 一代枭雄 阅读(306) 评论(0) 推荐(0) 编辑
摘要:异常的概念-程序在运行过程中可能产生异常-异常(Exception)与Bug的区别 异常是程序运行时可预料的执行分支 Bug是程序中的错误,是不被预期的运行方式 异常(Exception)和Bug的对比-异常 运行时产生除0的情况 需要打开的外部文件不存在 数组访问时越界-Bug 使用野指针 堆数组 阅读全文
posted @ 2019-12-09 21:11 一代枭雄 阅读(523) 评论(0) 推荐(0) 编辑
摘要:单例模式需求的提出在架构设计时,某些类在整个系统生命周期中最多只能有一个对象存在(Single Instance)如何定义一个类,使得这个类最多只能创建一个对象?明确创建一个对象,必然会调用构造函数。要控制类的对象数目,必须对外隐藏构造函数 思路:-将构造函数的访问属性设置为private-定义in 阅读全文
posted @ 2019-12-08 22:37 一代枭雄 阅读(1087) 评论(0) 推荐(0) 编辑