C/C++
文章平均质量分 70
taxue505
网络 信息安全 互联网
展开
-
DESIGN PATTERNS - ABSTRACT FACTORY PATTERN
Abstract Factory PatternAbstract Factory - Provide an interface for creating families of related or dependent objects without specifying their concrete classes.Abstract Factory pattern lets a class ...转载 2020-03-25 16:21:50 · 289 阅读 · 0 评论 -
C++编写线程池
#include #include #include using namespace std;#define WM_THREADSTART WM_USER+1#define WM_THREADEND WM_USER+2#define WM_THREADADD WM_USER+3#define WM_THREADPOOLEND WM_USER+4#define WM_THREA转载 2016-06-29 22:12:58 · 344 阅读 · 0 评论 -
全局变量和局部变量在内存中的区别
答:有区别。全局变量保存在内存的全局存储区中,占用静态的存储单元;局部变量保存在栈中,只有在所在函数被调用时才动态地为变量分配存储单元。该题目考查的知识点是变量的存储类型及性质。C语言经过编译之后将内存分为以下几个区域:(1)栈(stack):由编译器进行管理,自动分配和释放,存放函数调用过程中的各种参数、局部变量、返回值以及函数返回地址。操作方式类似数据结原创 2016-06-29 22:27:14 · 26846 阅读 · 0 评论 -
矩阵运算
#include #include #include #include #include #define MAX 20 #define E 0.000000001 using namespace std;// 定义向量别名typedef vector Vec;//有关向量运算需要重载相关运算符,双目操作符左右值若是矩阵则调用,不是矩阵则调用非重载版本// 重原创 2016-07-12 16:39:26 · 1084 阅读 · 0 评论 -
strcpy函数的实现
已知strcpy函数的原型是:char *strcpy(char *dst, const char *src);实现strcpy函数解释为什么要返回char *假如考虑dst和src内存重叠的情况,strcpy该怎么实现1.strcpy的实现代码char * strcpy(char *dst,const char *src) //[1]{ as原创 2016-07-01 22:47:26 · 2918 阅读 · 0 评论 -
单精度和双精度浮点数数据类型
C、C++中使用到的单精度浮点数(float)类型和双精度浮点数(double)类型是在IEEE二进制浮点数算术标准(ANSI/IEEE Std 754-1985)中定义的。下面分别从存储格式、内存分布、编码规则、取值范围、有效数字位数和测试示例程序六个部分来详细说明。存储格式浮点数在计算机中存储时,按照二进制科学计数法拆分为三个部分:符号位、指数部分和尾数部分。如下图所示:原创 2016-07-16 09:58:44 · 6591 阅读 · 0 评论 -
C++ 中的cin、cin.get()、cin.getline()、getline()、gets()
1、cin 2、cin.get() 3、cin.getline() 4、getline() 5、gets() 6、getchar()附:cin.ignore(); cin.get()//跳过一个字符,例如不想要的回车,空格等字符1、cin>> 用法1:最基本,也是最常用的用法,输入一个数字:#include usi原创 2016-07-07 10:42:06 · 281 阅读 · 0 评论 -
VC调试
VC提供一种被称为Watch的机制来观看变量和表达式的值,由于指针指向的数组,Watch只能显示第一个元素的值,为了显示数组的后续内容,或者要显示一片内存的内容,可以使用()功能MemoryRegstersConditionsVariblesWatch VC支持查看变量、表达式和内存的值。所有这些观察都必须是在断点中断的情况下进行原创 2016-07-30 14:52:47 · 236 阅读 · 0 评论 -
STL各种容器迭代器失效的时机
STL各种容器迭代器失效的时机一. 种类:标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一个重型字符串非标准关联容器hash_set、hash_multiset、hash_m原创 2016-07-31 11:10:26 · 5249 阅读 · 0 评论 -
C 语言字符数组的定义与初始化
C 语言字符数组的定义与初始化1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。 char str[10]={ ‘I’,’ ‘,’a’,’m’,’ ‘,‘h’,’a’,’p’,’p’,’y’}; 即把10个字符分别赋给str[0]到str[9]10个元素 如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组 长度,则只将这些字符数组中前原创 2017-05-14 22:01:50 · 1252 阅读 · 0 评论 -
C++对象模型详解
C++对象模型详解点击打开链接https://www.cnblogs.com/tgycoder/p/5426628.htmlhttps://www.cnblogs.com/tgycoder/p/5426628.html转载 2018-03-30 16:57:34 · 516 阅读 · 0 评论 -
C++的初始化问题
首先,我们应该明确的是在C++中初始化不是赋值,因为初始化是必要的,如果读取了未初始化的值将会导致不明确的行为。初始化指创建变量并且给它赋初值,而赋值则是擦除对象的当前值并用新值代替。C++支持两种初始化变量的方式:复制初始化和直接初始化。int ival(1000);//直接初始化是将初始化式放在括号里int ival=1000;//复制初始化是用等号(=)那么这原创 2016-06-25 20:00:45 · 433 阅读 · 0 评论 -
将大整数转化成IP地址和把IP地址转化成大整数
#include #include #include using namespace std;typedef unsigned char uchar;void ulong2ip(unsigned int bignum){ int mod_a = 0, num = 0, i = 0; int arr[8] = { 0 }; while (bignum) { m原创 2016-04-14 16:31:30 · 597 阅读 · 0 评论 -
三次握手和四次挥手
三次握手:用于客户端和服务器之间建立连接TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。(1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即原创 2016-03-24 10:04:36 · 366 阅读 · 0 评论 -
类和动态内存管理注意的几个问题
1.默认构造函数分为带参数和不带参数两种,在类对象声明时,不能同时匹配两个构造函数,否则会出错!2.复制构造函数:用于将一个对象复制到新创建的对象中,其原型为: class_name(const class_name &t)3.深度复制:如果类对象有一字符串成员char * str;,复制构造函数应当复制字符串并将副本的地址赋给str成员,而不仅仅时复制字符串地址。用于深度复制的构造函数又原创 2015-03-12 15:56:40 · 368 阅读 · 0 评论 -
《C++ Primer Plus》第6版重点笔记
下面是我看《C++ Primer Plus》第6版这本书后所做的笔记,作为备忘录便于以后复习。笔记部分C++的const比C语言#define更好的原因?首先,它能够明确指定类型,有类型检查功能。其次,可以使用C++的作用域规则将定义限制在特定的函数或文件中。第三,可以将const用于更复杂的类型,比如数组和结构。C语言中也有const,其与C++中co转载 2015-03-12 15:28:38 · 746 阅读 · 0 评论 -
strdup函数
strdup函数原型:strdup()主要是拷贝字符串s的一个副本,由函数返回值返回,这个副本有自己的内存空间,和s不相干。strdup函数复制一个字符串,使用完后要记得删除在函数中动态申请的内存,strdup函数的参数不能为NULL,一旦为NULL,就会报段错误,因为该函数包括了strlen函数,而该函数参数不能是NULL。函数名: strdup功原创 2015-04-23 16:29:35 · 7233 阅读 · 0 评论 -
C++primer 第一章网站上的代码
C++primer 第一章网站上的代码:#ifndef SALESITEM_H#define SALESITEM_H#include #include class Sales_item{public:Sales_item(const std::string &book):isbn(book),units_sold(0),revenue(0.0){}Sales_item(std:转载 2015-04-12 17:34:37 · 1398 阅读 · 0 评论 -
输入缓冲区的清除问题
在做C++primer习题过程中,最近遇到一个问题,这个题目就是3.3,那就是输入缓冲区的清除问题,一开始没考虑到这方面的问题,后来运行时出现了点问题。经资料查找与学习,现总结如下:一、cin.clear()、cin.sync() cin.clear()是用来更改cin的状态标示符的。 cin.sync()是用来清除缓存区的数据流的。如果标示符没有改变那么即使清除了数据流也无原创 2015-04-13 15:31:26 · 1606 阅读 · 0 评论 -
C++中的文件输入/输出
简介本教程将以C++最基本的文件I/O(输出/输出)开始。此后,我将从更深入的方面,为你展示一些技巧,并分析给出一些有用的函数。你需要对C++有一个较好的理解,否则这个教程于你而言将是陌生而毫无用处。 你的第一个程序 首先我将给出一段代码,接着再逐行进行解释。我们的第一个程序将建立一个文件,并写入一些字符: #include转载 2015-04-21 17:43:58 · 512 阅读 · 0 评论 -
将博客搬至51CTO
将博客搬至51CTO原创 2015-11-04 20:58:56 · 362 阅读 · 0 评论 -
浅拷贝和深拷贝
当用一个已初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用。也就是说,当类的对象需要拷贝时,拷贝构造函数将会被调用。以下情况都会调用拷贝构造函数:(1)一个对象以值传递的方式传入函数体 (2)一个对象以值传递的方式从函数返回 (3)一个对象需要通过另外一个对象进行初始化。如果在类中没有显式地声明一个拷贝构造函数,那么,编译器将会自动生成一原创 2016-03-11 11:45:06 · 338 阅读 · 0 评论 -
内存管理之堆和栈的区别
一般认为在c中分为这几个存储区 1栈 - 有编译器自动分配释放 2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静 态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束释放 4另外还有一个专门放常量的地方。 - 程序结束释放 在函数原创 2016-03-11 11:54:33 · 478 阅读 · 0 评论 -
SOLID五大 原则(腾讯2017实习生题目)
在 21 世纪的前几年里,“ Uncle Bob”Robert Martin 引入了用OOP 开发软件的五条原则,其目的是设计出更易于维护的高质量系统。无论是设计新应用程序,还是重构现有基本代码,这些 SOLID 原则都成为开发人员的地图。 1. 单一职责原则单一职责原则 (Single Responsibility Principle,SRP) 指出,原创 2016-04-05 16:00:53 · 745 阅读 · 0 评论 -
C++primer plus第十章第5题
头文件://stack.h#ifndef _STACK_H#define _STACK_Hstruct customer{ char fullname[35]; double payment;};typedef customer Item ;class Stack{private: enum {MAX=10}; Item items[MAX]; int to原创 2015-03-16 09:37:42 · 698 阅读 · 0 评论