C++
文章平均质量分 58
ZalGGboy
这个作者很懒,什么都没留下…
展开
-
C++学习历程(五)公司职员信息系统(多文件编译)
需求:1.一家公司内,有四种职位,经理(Manager),技术人员(Technician,销售(Salesman),销售经理(SalesManager)。2.每个员工都有自己的工号,工号从1000开始,每多一个人加1。3.公司:经理:8000,技术人员:100/h,销售:4%*月销售额,销售经理:2%*月总销售额。1.首先创建.h文件 Staff.h,五种职位,创建五个类。#ifndef _ST...原创 2018-04-15 16:57:30 · 734 阅读 · 0 评论 -
面试经历(一):const在C和C++中的作用?
1.C++中const的作用在C/C++开发中经常会用到const,这个修饰符。今天就讨论一下它的作用。(1) const用于定义常量:const定义的常量编译器可以对其进行数据静态类型安全检查。这个是开发中经常用到的const的最基本的作用。(2) const修饰函数形式参数:当输入参数为用户自定义类型和抽象数据类型的时候(就是自己定义的类),应该将“值传递”改为“const &am...原创 2018-08-22 11:37:02 · 1032 阅读 · 0 评论 -
C++学习经历(十四)建造者模式
建造者模式将产品的内部表象和产品的生产过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造者模式使得产品内部表象可以独立的变化,客户不必知道产品内部实现的细节。建造者模式可以强制实行一种分步骤进行的建造过程。例子:一个房子(House)有门(Door)和墙(Wall),建造者(Builder)在建造屋子的时候需要造门和墙,但是我们并不需要知道如何建造门和墙、我们只需要派遣...原创 2018-09-18 10:20:25 · 197 阅读 · 0 评论 -
C++学习经历(十五)观察者模式
观察者模式 观察者模式定义了一种一队多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。#include <iostream>#include <list>using namespace std;class Observer;//通知者class Subject{ ...原创 2018-09-18 11:14:58 · 185 阅读 · 0 评论 -
log4cpp 详解及使用操作
Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和跟踪调试的功能。使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、本地syslog和远程syslog服务器中。1、Log4cpp简介 Log4cpp是个基于LGPL的开源项目,移植自Java的日志处理跟踪项目log4j,并保持了API上的一致。...原创 2019-02-12 14:27:25 · 6856 阅读 · 0 评论 -
重载operator new/delete/new[]/delete[]
https://blog.csdn.net/weixin_41256413/article/details/82950003此博客转载上面的博客,便于查看https://blog.csdn.net/hizhangyuping/article/details/80624506源码详解,读书万遍、其义自现http://www.cppblog.com/dawnbreak/articles...转载 2019-02-28 10:45:33 · 260 阅读 · 0 评论 -
重载new和delete来检测内存泄漏
1. 简述 内存泄漏属于资源泄漏的一种,百度百科将内存泄漏分为四种:常发性内存泄漏、偶发性内存泄漏、一次性内存泄漏和隐式内存泄漏。 常发性指:内存泄漏的代码会被多次执行到。偶发性指:内存泄漏的代码只有在特定的条件下才会执行到。一次性指:内存泄漏的代码只会被执行到一次。隐式指:程序在运行中不断的开辟内存,知道程序结束时才释放内存,本质上虽然没有内存泄漏,但是如果这个程序在连续运行很...原创 2019-02-28 14:39:07 · 965 阅读 · 0 评论 -
access()函数的用法
1.函数功能:检查调用进程是否可以对指定的文件执行某种操作。2.函数原型:1)函数头文件 #include <stdio.h> #include <unistd.h>2)函数int access(const char * pathname, int mode)3)形参pathname:需要检测的文件路劲名mode:需要测...原创 2019-02-26 16:25:33 · 7572 阅读 · 0 评论 -
Android Tombstone(墓碑日志)解决步骤
最近在学习通过墓碑文件定位bug所在位置,网上浏览了很多的博客,大多数只能做到利用addr2line定位到行号但是对于大型项目,尤其是C++代码较多的情况下,很难去准确定位到内存越界、内存溢出等问题(全球性难题,没办法)。在这里整理一下,尽量给自己和大家提供一些路径:1. https://blog.csdn.net/Zhanganliu/article/details/87715961...原创 2019-03-07 11:32:28 · 5663 阅读 · 0 评论 -
C++学习历程(十三)C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: [c-sharp] view plain copyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 [c-sharp] view plain copy#include ...原创 2018-08-15 16:47:46 · 388 阅读 · 0 评论 -
QT学习笔记(一)QByteArray Class
QByteArray类提供一个字节数组,QByteArray可用于存储原始字节(包括“\ 0” )和传统的8位 “\ 0” 端接字符串 . 使用QByteArray比使用const char *更方便.除了QByteArray之外,Qt还提供了QString类来存储字符串数据。对于大多数用途,QString是您要使用的类。它存储16位Unicode字符,使您可以轻松地在应用程序中存储非AS...原创 2018-07-27 11:33:14 · 1712 阅读 · 0 评论 -
C++学习历程(十二)类的继承详解
一、前言 继承是c++语言一个重要的机制,该机制自动地为一个类提供来自另一个类的操作和数据结构,这使得程序员只需在新类中定义已有的类中没有的成分来建立一个新类。二、继承解释 继承是类的重要特性。A类继承B类,我称B类为“基类”,A为“子类”。A类继承了B类之后,A类就具有了B类的部分成员,具体得到了那些成员,这得由两个方面决定: - 继承方式 - 基类成员的访问权限 三、三种继承方式**公有继承方...原创 2018-06-29 17:04:51 · 793 阅读 · 0 评论 -
C++学习历程(六)构造函数与析构函数(纯虚函数)
基类为图形类:包含长,宽,半径;派生类Circle :用来求圆的面积;派生类Square :用来求矩形面积;#include <iostream>#define PI 3.1415926using namespace std;class Graph{ protected: int m_a,m_b; int m_r; publ...原创 2018-04-15 17:06:23 · 567 阅读 · 0 评论 -
C++学习历程(四)对字符串类的运算符重载(多文件编译)
1.首先创建.h文件,作为头文件,其中包含类的成员变量和重载成员函数。#ifndef _MYSTRING_H#define _MYSTRING_H#include <iostream>using namespace std;class MyString{ private: int m_length; char *m_data; ...原创 2018-04-03 19:13:22 · 730 阅读 · 2 评论 -
C++学习经历(八)异常处理机制,try、throw、catch
题目:设计一个数组类MyArray,重载【】操作,数组初始化时,对数组的个数进行检查;情况:1.index < 0时,抛出异常类eNagetive(); 2.index = 0时,抛出异常类eZero(); 3.index > 1000时,抛出异常类eTooBig(); 4.index < 10 && inde...原创 2018-04-23 21:32:20 · 550 阅读 · 0 评论 -
C++学习经历(七)模板函数和模板类(多文件编译)
题目:设计一个数组类MyArray,重载【】操作,数组初始化时,对数组的个数进行检查;情况:1.index < 0时,抛出异常类eNagetive(); 2.index = 0时,抛出异常类eZero(); 3.index > 1000时,抛出异常类eTooBig(); 4.index < 10 && inde...原创 2018-04-23 21:14:45 · 1029 阅读 · 0 评论 -
Linux makefile 教程 非常详细,且易懂 ——亲身实践,转载
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解。能...转载 2018-05-04 20:57:47 · 810 阅读 · 0 评论 -
C++学习历程(九)STL标准模板库——详解
要熟悉 STL,最简单的方式就是从容器开始。容器无论何时需要操作大量元素,都会用到某种容器。C语言只有一种内置容器:数组。问题不在于数组有局限性(例如,不可能在运行时确定数组大小)。相反,问题主要在于很多任务需要功能更强大的容器。例如,我们可能需要一个或多个下列操作:向容器添加某种字符串从容器中移除一个字符串确定容器中是否存在某个字符串从容器中返回一些互不相同的元素对容器进行循环遍历,以某种顺序获...转载 2018-05-08 11:13:05 · 678 阅读 · 0 评论 -
C++学习经历(十)设计模式——单例模式
什么是单例模式单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例其中单例模式的具体实现如下:饿汉形式——当类被加载的时候便进行初始化单例对象直接在加载后初始化#include <iostream>#include <pthread.h>using namespace...原创 2018-05-15 20:23:11 · 641 阅读 · 0 评论 -
C++学习历程(十一)构造函数与虚构函数总结
C++是面向对象的编程语言,在定义类的时候,离不开构造函数和析构函数。构造函数的形式很容易辨别,在类中与类同名的成员函数称为构造函数,在初始化一个对象时,如果有初始化数据,先传入到构造函数中,再通过构造函数赋值到类的成员变量中。所以构造函数相当于一个中介,是向封装好的类初始化数据。另外,需要注意的地方是,类有构造函数的情况下,且构造函数需要传参,则初始化对象时必须要传参。这样可以避免垃圾数据。构造...原创 2018-06-29 17:03:18 · 683 阅读 · 0 评论 -
【C++ 】 format 函数详解
C++ format 函数C++编程Format是一个很常用,却又似乎很烦的方法,以下是它的完整概貌,以供大家查询之用:一、字符串首先看它的声明:function Format(const Format: string;const Args: array of const): string; overload;事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在...转载 2019-07-09 14:50:49 · 20290 阅读 · 0 评论