c/c++编程
zhangyun75
这个作者很懒,什么都没留下…
展开
-
c++11 类默认函数的控制:"=default" 和 "=delete"函数
#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <string>#include <vector>#include <map>//c++11 类默认函数的控制:"=default" 和 "=delete"函数/*C++ 的类有四类特殊成员函数,它们分别是:默认构...转载 2018-07-09 11:22:48 · 1020 阅读 · 0 评论 -
设计模式C++实现(15)——观察者模式
转载自: http://blog.csdn.net/wuzhekai1985软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件...转载 2018-07-09 14:45:12 · 355 阅读 · 0 评论 -
C++设计模式-State状态模式
State状态模式作用:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。UML图如下:State类,抽象状态类,定义一个接口以封装与Context的一个特定状态相关的行为。ConcreteState类,具体状态,每一个子类实现一个与Context的一个状态相关的行为。Context类,维护一个ConcreteState子类的实例,这个实例定义当前的状态。状态模式主要解决的是...转载 2018-07-10 11:49:44 · 1895 阅读 · 0 评论 -
Linux必会调试分析工具
1、gdb2、strace3、ltrace原创 2018-07-16 17:19:36 · 409 阅读 · 0 评论 -
C++内存泄漏的几种情况
1. 在类的构造函数和析构函数中没有匹配的调用new和delete函数两种情况下会出现这种内存泄露:一是在堆里创建了对象占用了内存,但是没有显示地释放对象占用的内存;二是在类的构造函数中动态的分配了内存,但是在析构函数中没有释放内存或者没有正确的释放内存2. 没有正确地清除嵌套的对象指针3. 在释放对象数组时在delete中没有使用方括号方括号是告诉编译器这个指针指向的是一个对象数组,同时也告诉编...转载 2018-07-04 17:54:53 · 607 阅读 · 0 评论 -
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
以下是在论坛中看到的两种解释:(1)如果是要你的代码在编译时发现编译器类型,就判断_cplusplus或_STDC_宏,通常许多编译器还有其他编译标志宏,#ifdef __cplusplus cout<<"c++";#else cout<<"c";#endif 如果要判断已经编译的代码的编译类型,就用nm查一下输出函数符号是否和函数名相...转载 2018-07-04 16:59:39 · 2201 阅读 · 0 评论 -
C++单例模式
单例模式是任何面向对象语言绕不过的,单例模式是很有必要的,接下来我用最朴素的语言来解释和记录单例模式的学习。什么是单例模式?单例模式就是一个类只能被实例化一次 ,更准确的说是只能有一个实例化的对象的类。创建一个单例模式的类(初想)一个类只能有一个实例化的对象,那么这个类就要禁止别人new出来,或者通过直接定义一个对象出来class CAR{public: CAR(){} ~CA...转载 2018-07-05 09:33:11 · 550 阅读 · 0 评论 -
Linux Debugging(五): coredump 分析入门
作为工作几年的老程序猿,肯定会遇到coredump,log severity设置的比较高,导致可用的log无法分析问题所在。 更悲剧的是,这个问题不好复现!所以现在你手头唯一的线索就是这个程序的尸体:coredump。你不得不通过它,来寻找问题根源。 通过上几篇文章,我们知道了函数参数是如何传递的,和函数调用时栈是如何变化的;当然了还有AT&T的汇编基础,这些,已经可以使我们...转载 2018-07-19 19:25:30 · 310 阅读 · 0 评论