自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 问答 (10)
  • 收藏
  • 关注

原创 从网上找到的聊天室代码看epoll相关的API

拿一个聊天室的demo来讲一下Socket网络编程中的epoll相关的api的使用server端代码://server.cpp#include <iostream>#include <list>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>...

2018-04-19 21:02:12 310

原创 java中抽象类和接口之间的区别和关系

首先抽象类归根结底还是属于类,对于抽象方法,是只能存在于抽象类中的,我们无法再一个非抽象的类中声明一个抽象方法,其次抽象方法只需要声明,并不需要事先。当我们要写一个抽象类的时候只需要在类的前面声明为abstract即可了。同时抽象类是无法被实例化的,而抽象类的存在就是为了被继承的,在我们定义类的时候,有的时候需要定义一个这样的抽象类但是不想将其进行实例化的时候就可以定义一个抽象类,比如我们想要定义

2016-06-12 23:08:05 5050

转载 从一道题谈C++中构造函数调用构造函数

#include #include using namespace std;struct CLS{ int m_i; CLS( int i ) : m_i(i){} CLS() { CLS(0); }};int main(){ CLS obj; cout << obj.m_i << endl; sys

2016-06-12 13:17:53 531

原创 leetcode05题

这题采用动态规划的思路来进行处理,代码如下,但是在oj 上提示内存泄漏,代码贴出来如下#include"iostream"#include"string";using namespace std;int max_length = 1;int max_begin = 0;class Solution {public: string longestPalindrome(string

2016-06-06 22:10:21 526

原创 关于leetcode第三题的巧妙解法

最近在leetcode上刷题,无聊看到第三题,题干如下:  Longest Substring Without Repeating Characters:  Given a string, find the length of the longest substring without repeating characters. For example, the longest sub

2016-05-26 11:38:32 5338 6

原创 web编程的一些概念

问题一:什么是前端、什么是后端?  前端运行的是html/css/javascript,这些代码是用来给浏览器执行和渲染的,这些代码在本地运行就可以看得到效果。  后端运行的是php/asp/jsp,这些代码是在服务器端运行的,它们生成前端的代码发送给客户端(浏览器)。  前端的代码我们称之为静态代码。  对于后端的代码我们称之为动态代码,指的是一个php文件,可以根据参数的不同,

2016-05-17 21:35:14 1126

原创 因为类中写静态成员而得到的一点感悟

在考试中,由于经常看到一个静态变量定义在一个函数中,然后多次调用这个函数通过考察多次调用的时候这个变量的值来考察静态变量,这样的考察方式先入为主的奠定了自己对于静态变量的印象。(实际上这仅仅是静态变量中比较特殊的一类,我们称为局部静态变量)而且自己有的时候有一个不好的习惯就是将类写在main函数中。然后自己在写一个类的时候就出现了报错现象。代码如下:#includeusing namespa

2016-04-22 15:15:04 524

原创 关于构造函数的两三事

构造函数分为很多种,我这里可以大致分为默认构造函数、普通的构造函数和复制构造函数三种。我们需要知道的一点是,多数非内置类型是用构造函数来进行初始化的,其中很多初始化过程并没有使用参数,那么也就是说大部分非内置类型的初始化是依赖于默认构造函数的,但是实际上默认构造函数并不一定是没有参数的,我们知道我们在定义函数的时候是可以在参数表中制定参数的值的,意思用来表达:如果你在使用本函数的时候,在参数表中自

2016-04-20 14:58:19 618

原创 空悬指针、野指针、内存泄漏、内存溢出

在C语言中,指针的功能十分强大,这使得在C中程序员对于指针的使用要十分地谨慎。那么首先我们对于指针的使用就是要对空悬指针(dangling pointer)和野指针进行避免。  首先我们介绍空悬指针,空悬指针指的是一个指针,当它指向的对象已经被释放的时候而自身却没有被置为null的时候,那么这个指针就会变成一个空悬指针。而野指针,通俗的表示就是没有进行初始化的指针,但是因为一个指针没有初始化的

2016-04-17 20:56:10 3476 2

原创 IPv4与IPv6

暂时挖坑,马上来填

2016-04-06 00:26:36 334

原创 new和malloc的区别

我们都知道,对于new和malloc都可以用于动态内存的分配,但是实际上他们又有哪些区别呢?   1、首先,new是运算符,和delete配套使用,他们都并不属于库函数,而malloc是标准库函数,与free配套使用。都可以用于动态申请内存和释放内存  2、对于一般的malloc函数,举例如下进行运用char *p=(int *)malloc(sizeof(char)*5);mallo

2016-04-05 23:57:04 354

原创 三五法则以及行为像值的类和行为像指针的类

看C++primer中,看到行为像值的类和行为像指针的类中,实际上思路非常的简单,对于行为像值的类而言,实际上就是每个实例化的对象都有一份备份,那么每个实例化的对象如果申请了默认析构函数没有办法析构的类外空间的时候(比如在类中有string或者一些动态申请内存的容器的时候)就需要各自单独释放,这种释放实际上不仅仅是要写进单独的析构函数中,比如我们在重载赋值操作符(=)的时候也需要单独的释放空间。我

2016-04-04 14:28:46 2473 2

原创 如何分辨拷贝构造函数和赋值操作符两种操作

看到关于拷贝控制的内容的时候对于拷贝构造函数(又称复制构造函数)和用赋值操作符来对对象赋值的两种操作产生了疑问,到底什么时候是属于拷贝构造函数的范围,又有哪些时候是属于赋值构造函数的范围呢?  首先拷贝构造函数是属于构造函数的一种,如果我们没有为一个类定义拷贝构造函数的话,编译器会为我们隐式定义一个,与合成构造函数不同的是,即使我们定义了其他的构造函数,编译器因为会为我们合成一个拷贝构造函数(

2016-03-29 16:06:03 1137 1

原创 初始化与赋值之间的区别

由于在内置类型中,初始化和赋值不进行区分并不会造成很大的影响,所以让我很大程度上忽略了他们的差别。  直到C++primer中对于构造函数提出了一句话,构造函数有一个初始化部分和一个函数体,在一个构造函数中,成员的初始化是在函数体执行之前完成的,且按照它们在类中出现的顺序进行初始化。让我第一次开始思考初始化和赋值操作之间的区别。  首先我们看构造函数的两种写法  “赋值”写法:

2016-03-28 21:25:55 6136

原创 默认构造函数和合成默认构造函数

当我们没有为类中的对象提供初始值,此时就会执行默认初始化,类会通过一个特殊的构造函数来控制默认初始化过程,这个函数叫做默认构造函数,这个函数并不需要任何的实参,但是如果我们的类没有显式地定义构造函数,那么编译器就会为我们隐式地定义一个默认构造函数(只要没有显式定义构造函数,编译器就会提供默认构造函数,如果为类中的对象提供了初始值的话,就不会控制默认初始化过程了)。  实际上,默认构造函数并不一

2016-03-25 16:41:20 2515

原创 printf和cout的区别详述

#includeusing namespace std;int main(){cout<<"Hello,World!"<return0;}  由于以前学过C,所以这段代码的其它部分在我看来都还算“正常”,然而cout却很独特:既不是函数,似乎也不是C++特别规定出来的像if,for一类有特殊语法的“语句”。由于只是初步介绍,所以那本书只是简单的说cout是C++中的“标准输入输

2016-03-23 00:48:50 45269 8

原创 对于友元重载方式和成员函数重载方式的选择

今天看C++primier第五版494页下面有一段叙述:  与iostream标准库库兼容的输入输出运算符必须是普通的非成员函数,而不能是类的成员函数。否则,它们的左侧运算对象将是我们类的一个对象。原因倒是非常简单,因为如果重载函数是作为类中的一个非静态对象的话,就必须通过一个已经被实例化的类来调用,如果仅仅是作为一个友元函数的话,那么直接调用就可以了。  那么对于前者,很明显地可以知

2016-03-22 23:57:07 1872

原创 关于this指针

关于C++对象中的隐式定义的this指针,有这样一句说明:  注:以下对象针对类和结构体;  this指针指的是:一个对象的this指针并不是对象本身的一部分,但并不会影响sizeof(对象)的结果,this的作用域是在类内部,当在类的非静态成员函数访问类中的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。  首先,在这一段话中特意强调了静态这两个字,我们

2016-03-22 14:12:39 571

原创 从C语言的C++头文件开始起底

我们知道在C中的头文件多是以.h为结尾,而在C++中的头文件多是没有后缀名的,这是为什么?在比如在C++中使用的cout和printf有什么区别?首先不加.h的是现在C++中规定的标准,目的在于使C++代码用于移植和混合嵌入时不受扩展名.h的限制,避免因为.h而造成的额外的处理和修改,而加.h的是c语言的用法,但是在c++中也支持这种用法,主要是为了向下兼容c 的内容,我们平时尽量不用这种方法

2016-03-20 23:22:38 735

原创 动态链接和静态链接

1、讲到类和结构体的不同的时候,可能会说类里面的成员和结构体里的成员默认状态是不一样的,可能会说由于C++的特性,因而类具有了继承、封装和多态等多种特性。但是还有一个除却功能性上底层区别之外的习惯用法区别就是:  对于代码较大的成员函数来说,直接把代码放在类中定义存在两个问题:一是使用起来很不方便,二是破坏了信息隐藏机制。  那么为什么说将代码放在类中定义会破坏信息隐藏机制呢?  实际

2016-03-04 23:00:31 387

原创 C++中关于类(封装、继承、多态)区别于结构体的理解

我们讲C++区别于C,首先要讲的就是struct和class之间的区别。对于没有任何private/public/protected声明的变量,struct默认为public,而class中是默认为private。这使得对于一般的变量而言,

2016-03-03 23:37:52 709

原创 回朔法和递归解决八皇后和跳马问题

八皇后问题、如果在8×8的象棋棋盘上,放上8个皇后,使得每个皇后不在同一行,同一列,同一斜线上,试输出所有可能的摆放方法。  显而易见的,用深搜回溯法解决,每一列只能放下一枚皇后棋子,那么用一个一维数组记录皇后的位置,然后开始下一列(如果列数小于8),如果找不到满足条件的未完待续

2016-02-26 22:56:48 5549

原创 多种方式下初始化字符串的过程分析

初始化字符串有多种方式,如下:char a[]="abc";//这种情况下实际上规定了字符数组的大小为4(含结尾的\0)char *p="zxcd";//思考为什么这样也可以初始化,p表示的是地址,"zxcd"是字符串,为什么可以划等号。未完待续

2016-02-02 20:00:21 1523

转载 内存区域的划分(堆栈区、常量区、静态区)

程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分   1、栈区(stack)    由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。    2、堆区(heap)   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回收   。与数据结构中的堆是两回事,分配方式倒是类似于链表。

2016-02-02 14:52:16 8474 1

转载 const和static的作用辨析以及const和static的区别

首先字面上理解,const是只读的意思,static是静态的,点击打开链接

2016-02-01 21:12:07 1226 1

原创 预编译的不同形式和辨析整理

预编译又称为预处理,简单来说可以认为是做一些代码文本的替换工作,我们最常见的一种就是宏定义和#include类型,预编译过程中处理的是#开头的指令,最常见的预编译指令有:  1、#include指令    如果是用<>括起来的文件那么就在系统的include目录中寻找文件,如果用""括起来就表示在当前目录中寻找文件(多是程序员自己编写),一般来说,多以h或者cpp为后缀,另外需要注意的是如

2016-02-01 15:28:18 701

编程珠玑第二版

编程珠玑第二版,程序员工程师面试必备的资料。。。。。

2018-04-23

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除