自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 套接字地址结构笔记----C++网络编程

1.IPv4套接字地址结构:struct in_addr{ in_addr_t s_addr;}struct sockaddr_in{ uint8_t sin_len; sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; char sin_zero[8

2017-11-23 15:08:53 314

原创 重载new()delete()的笔记----C++学习之路

1.除了之前笔记中的重载,现在重载的是这样的表示:Foo* pf = new(300,'c')Foo;以下示例:(1)一般的operator new()重载:void* operator new(size_t size){ return malloc(size);}(2)这个就是标准库提供的placement new()的重载void* operator new(siz

2017-11-21 14:19:00 498

原创 关于网络传输层的一些概念笔记----C++学习之路

1.ipv4:网络协议版本4,使用32位地址,提供分组递送服务。  2.ipv6:网络协议版本6,使用128位更大地址。  3.TCP:传输控制协议(Transmission Control Protocol),面向连接,提供可靠的双工字节流,有确认,超时,重传,支持v4,v6.  4.UDP:用户数据报协议(user datagram protocol),无连接协议,数据报套接字,不

2017-11-20 20:38:38 318

原创 关于重载new delete new[] delete[]笔记----C++学习之路

1.在之前的笔记中已经提到,new在编译器下会分成三个动作,当有重载就会跑到重载之中。先看一个代码:void* myAlloc(size_t size){ renturn malloc(size);}void myFree(void* ptr){ return free(ptr);}再看一个重载:inlinevoid* operator new(size_

2017-11-19 23:30:35 201

原创 关于静态绑定与动态绑定的辨别笔记----C++学习之路

1.从代码来看:假设有继承关系:C->B->AB b;A a = (A)b;a.vfunc1();a是一个A类型的对象,赋值转型后的b。那么通过a来调用的虚函数vfunc1(),它是通过对象来访问的,静态绑定。在汇编里面就是call XXXA* pa = new B;pa->vfunc1();从这里可以看到,通过一个指针pa来访问vfunc1(),满足第一个条件通过指针,第二

2017-11-19 22:55:34 177

原创 this pointer笔记----C++学习之路

1.什么是this pointer通过一个对象来调用函数,那么这个对象的地址就是this pointer。  2.举个例子MFC中有CDocument的父类,CMyDoc为子类继承CDocument::OnFileOpen(){ ..... Serialize(); ......}virtual Serialize();clss CMyDoc:

2017-11-19 22:26:12 318

原创 搭建一个简易的时间服务器笔记----C++学习之路

步骤:1.创建TCP套接字int listenfd;listenfd = Socket(AF_INET,SOCK_STREAM,0);关于socket的函数介绍:点击打开链接第一个参数是协议族,具体在上面的链接有介绍,这里是一个ipv4的协议族。第二个参数是协议类型,这里是一个tcp协议。第三个参数是用于制定某个协议的特定类型,通常某个协议只有一种特定类型,这样这个参数只

2017-11-19 21:23:36 446

原创 vptr与vtbl笔记----C++学习之路

1.vptr虚指针,vtbl虚函数表先看看示例代码:class A{public: virtual void vfunc1(); virtual void vfunc2(); void func1(); void func2();private: int m_data1,m_data2;};class B:public A{publi

2017-11-18 00:32:07 503

原创 reference引用笔记----C++学习之路

1.代码例子:int x = 0;int* p = &x;int& r = x;int x2 = 5;r = x2;int& r2 = r;  2.代码分析:可以直到再memory中x占有一个内存 【int x = 0;】指针p也占有一个内存【int* p = x;】------>【int x = 0;】引用r意思是我有一个变量r,她是一个reference,指针

2017-11-14 15:12:40 227

原创 C++11中的auto与范围for----C++学习之路

1.auto的用法:list c;...list::iterator ite;ite = find(c.begin(),c.end(),target);在C11之后等价于:list c;...auto ite = find(c.begin(),c.end(),target);auto必须初始化,错误例子:list c;...auto ite; Xite = find(

2017-11-13 00:05:13 1819

原创 variadic template模板参数可变化----C++学习之路

1.什么叫做variadic template?variadic可变的,连起来就是数量不定的模板参数。  2.语法上怎么写?直接用例子:templatevoid print(const T& firstArg,const Types&... args){ cout<<firstArg<<endl; print(args...);}注意三个点不是省略,而是语法。

2017-11-12 23:37:19 403

原创 template template parameter模板模板参数笔记----C++学习之路

1.如标题所说,也就是在模板中嵌入另一个模板举个例子:template<typename T, template class Container >class XCls{private: Container c;public: ....};那么怎么取使用呢?templa

2017-11-12 02:06:57 867

原创 opencv模板匹配笔记----C++练手项目

1.今天依然是希望能够练习编程能力以及对程序的理解能力,所以找了这个opencv,以下是自己的笔记,以及一些资源地址。  2.opencv下载地址:点击打开链接  3.opencv环境配置教程:VS下永久配置教程     图文配置opencv  4.opencv中的matchTemplate函数:点击打开链接  5.模板匹配项目相关教程:使用Opencv&&C++进行实现模板匹配

2017-11-11 02:08:51 1079

原创 specialization 模板特化笔记----C++学习之路

1.什么叫做特化,就是模板泛化的反义词,对某些特殊化。当我们建立了一个模板,我们希望把这个模板中的某些泛化的东西特殊化。  2.从例子来看:template struct hash{ };这个hash是泛化,当Key被绑定了,它不再是一个 可变的了,例如:、template<>struct hash{ size_t operator()(char x) const {

2017-11-10 16:52:39 456

原创 智能指针的实现----C++练手项目

1.学习C++过程中,总会去思考,怎么才能去提高自己的编程水平,毕竟,我是个菜鸟,我需要去练习来维持我的学习状态。正如古人所说的,纸上谈兵。我觉得纸上谈兵也是一种很厉害的东西,但是我是个菜鸟,还没能达到纸上谈兵的阶段。所以按照知乎上所说的,平常多看代码,每天,保持练习,才能入门C++。  2.听从前人的经验,刚开始,没有水平能够自己创造就去抄,应该叫做默写,先理解智能指针是什么?有什么

2017-11-10 01:49:30 1983

原创 member template成员模板笔记----C++学习之路

1.所谓成员模板,模板中有个member,它本身也是一个template,就叫做成员模板。  2.例子:template struct pair{ typedef T1 first_type; typedef T2 second_type; T1 first; T2 second; pair() :first(T1()), se

2017-11-09 13:08:16 1052

原创 function template函数模板概念笔记----C++学习之路

1.直接从例子来了解函数模板的概念:template inline const T& min(const T& a,const T& b){ return b<a ? b : a;}运行示例:class stone{public: stone(int w, int h, int we) :_w(w),_h(h),_weight(we) {

2017-11-09 00:22:03 245

原创 class template类模板笔记----C++学习之路

1.从例子来看这个类模板的概念template class complex{public: complex (T r=0,T i = 0) :re(r),im(i) {} complex& operator +=(const complex&) T real() const { return re; } T imag() const

2017-11-09 00:15:58 190

原创 conversion类型转换1(隐式转换)----C++学习之路

1.隐式转换:从概念上来说,隐式转换就是编译器帮你转换的,你看不见的。例子:int a = 3.54 + 4;这个例子很明显a=7。但是从类型的转换顺序来看,可能与自己想的不太一样。当在表达式中,含有int与double,那么int会转化成double类型,例子中的4就会转换成doulb类型,得到结果7.54这个doulbe类型的值。但是,a的类型是不能改变的,所以double

2017-11-07 23:13:19 856

原创 namespace笔记----C++

1.namespace有什么用?namespace,要用来把东西区分开来,假如a与b独立工作,制造出来的类名字有可能会相同,就用namespace来区分那我a就再用一个名字把这包含起来,b也用一个名字包含起来。  2.代码示例:using namespace std;#include #include namespace jj01{ void test_member

2017-11-07 22:34:22 184

原创 function-like classes 仿函数笔记----C++学习之路

1.本次笔记只提如何实现仿函数。  2.函数是怎么样的呢,有函数名称,还有一个小括号,叫做函数调用操作符。如果有个东西能用到这个函数调用操作符,那么就叫做他为函数,或者仿函数。  3.代码实例:templatestruct identity{ const T& operator() ( const T& x) const { return x; }};templa

2017-11-07 22:09:09 259

原创 pointer-like classes智能指针笔记----C++学习之路

1.智能指针概念,一个class所产生的一个对象,像一个指针。所以叫做pointer-like classes  2.为什么要有智能指针,因为我们都希望有一个比指针功能更多的指针。所以产生了一个智能指针。在C++2.0之前也就是C++11之前,有智能指针叫做auto pointer,在c++2.0之后,有许多智能指针,例如shared_ptr。  3.代码例子:template

2017-11-06 14:01:05 321

原创 初识windows编程----Windows编程学习

1.windows编程的基本/*以下为自己学习《windows程序设计》书中的笔记*/先从hello最简单的东西来看,在控制台程序上我们会这样写:#include #include using namespace std;int main(){ cout<<"hello world!"<<endl; return 0;}但是在Windows编程上是这样

2017-11-05 23:21:11 401

原创 转换函数笔记2----C++学习之路

1.non-explicit-one-argument ctorone-argument的意思就是,只要一个实参就够了,但是你要给两个也行。代码例子:class Fraction {public: Fraction(int num, int den=1) : m_numerator(num),m_denominator(den){} Fraction

2017-11-05 20:11:44 191

原创 conversion function 转换函数笔记----C++学习之路

1.所谓转换函数,就是一个对象是否可以转换为另外一种类型。转出去,转进来。  2.代码例子:class Fraction{public: Fraction(int num, int den =1) :m_numberatror(num),m_denominator(den){} operator double(0 const {return (doubl

2017-11-05 19:54:48 403

原创 关于继承与委托设计笔记----C++学习之路

1.Composite假如写一个file system,可以知道一个文件系统可以包括有目录和文件。目录里面可以放文件。由图中可得,左边的Primitive就是一个文件,右边的Composite就是一个目录。目录中需要一个容器来来存放文件,当然,目录中也可以存放目录,这个时候vector中存放的指针应该怎么做?那就让文件和目录同时继承Component,让vector来存

2017-11-04 20:07:31 216

原创 虚函数 virtual function 笔记(与继承)----C++学习之路

1.虚函数的概念在语法上,只要在成员函数前加上virtual,例如:virtual void draw() const =0;所谓继承其实就是继承函数的调用权。子类可以调用父函数的函数。但是当我们子类要去修改这个函数,则要用到虚函数。  2.虚函数的分类:(1):non-virtual:你不希望derived class overide(重写)。 int objectI

2017-11-01 23:53:25 3378

原创 继承Inheritance笔记----C++学习之路

如果说复合和委托是has-a,那继承就是is-a。  1.继承的语法。举个例子(代码):struct _List_node_base{ _List_node_base* _M_next; _List_node_base* _M_prev;};templatestruct _List_node:public _List_node_base{ _Tp

2017-10-31 23:07:11 223

原创 委托Delegation 笔记----C++学习之路

1.委托的概念:委托和复合非常相似,也是一个类含有has-a一个东西,但是这种拥有很虚,我们不知道何时才会拥有。只在我想要用到这个东西的时候才去调用,这是与复合的不同。委托的另外一个术语就很明了:Compositon by reference含有指针的复合,为什么不是by point,因为约定俗成,就是by reference。举个例子:class StringRep;cla

2017-10-31 14:19:40 713

原创 复合Composition 笔记----C++学习之路

1.Composition 复合,可以表示has-a。一个class中有一个另外一种东西。这个class与另外一个东西就叫做复合。复合关系尽量用图来表示会更加明白。templateclass queue{ ...protected: deque c;public: bool empty() const { return c.empty(); } si

2017-10-31 13:45:47 1169

原创 static静态处理笔记----C++学习之路

在分类上,static主要分为static data 与static function。  1.静态数据:static data,只能存在一份!举个例子,如果我们不是静态数据,那么可以有多份,例如一个银行类,里面可以有个账户信息info,那么这个info可以有很多份,不同的人都应该有属于自己的账户,所以不能设置为静态数据。如果是银行利率rate,那么只要一份,static double

2017-10-30 22:15:38 185

原创 String类的设计笔记----C++学习之路

关于带有指针的类的三大函数:拷贝构造,拷贝赋值,析构函数。用String类为例子的学习笔记

2017-10-29 21:15:32 353

原创 防卫式声明笔记----C++学习之路

防卫式声明用在头文件,是用来防止同一个文件被包含两次。分为两种类型。   以下是ID DebugEve 的博客地址:点击打开链接

2017-10-29 18:33:30 468

原创 C++中内存分配----C++学习之路

1.stack与heap的区别:stack(栈): 存在于某个作用域的一块内存空间。也就是说当你调用一个函数,函数本身,也就是在这个函数的scope中创建一块地址来存放参数,以及返回地址。离开作用域之后自动清除stack。heap(堆):由操作系统提供的一块global内存空间,用动态分配也就是new的方式来动态获得这块,但是需要程序员自己delete它。stack  ob

2017-10-29 03:27:39 197

原创 单链表的C++构造笔记----数据结构学习之路

最近学习之中,遇到了单链表,单链表还是上数据结构时候学习的,也忘得差不多,(还是记笔记这个习惯好,忘了就看看)。于是去网上重温了链表。也花了几个小时,自己在自己的笔记本上整理了下逻辑。以下是自己参考的大佬列举的知识点:点击打开链接 C++实现单链表 来自ID wujiangmin7    点击打开链接 链表的基本概念 来自ID tengxiaoming    点击打开链接 链表实现

2017-10-20 00:44:38 183

原创 string的皮毛与范围for----C++学习之路

/*以下是自己学习的心得与笔记,书籍《C++prime》平日会学习的书籍有《数据库系统导论》《计算机组成原理》《计算机系统导论》*/最近又倒回去看了看之前学的没记笔记的知识。学了string的皮毛以及范围for。大部分我们用到的库函数都属于命名空间std,所以要了解关于命名空间的using声明。 我的理解是,举个例子,假如我们要使用cout与

2017-10-17 15:01:19 242

原创 某天,我收到一封来自母亲的家书----C++初学之路

某天,我收到一封来自母亲的信,我很庆幸我有这样的母亲,也很愧疚:1:在外要注意照顾好自己,饮食要注意卫生,天冷了要记得添加衣服。学习、娱乐、锻炼三者要合理安排,要常锻炼身体,你的健康是妈妈最大的幸福。   2 :你说你在大学时要开网店,妈妈不反对,锻炼一下自己的经营管理的经验也不错。只是开网店在电脑前待着的时间长,对自己的身体不好,所以你要调整好作息时间,要劳逸结合,不能让自己

2017-10-17 14:20:45 344

原创 拖了将近一个月的----C++初学之路

上次写博客的时候是9-20日,期间学校组织了两次实习,由于实习的方面的验收以及近期各种自己喜欢的公司的面试,拖了将近一个月没有记笔记。也发现笔记这个东西很重要,一个月的期间自己学习了vector容器的有关内容,但是现在要让我来回顾下vec,我只能说vec是一个很重要的容器,具体函数,用法,大脑一片空白,但是要回顾的时候,又没有笔记供我自己来回忆。所以笔记这个东西真的很重要,接下来学

2017-10-16 15:07:00 246

原创 处理类型(auto,decltype)----C++初学之路

*以下是自己自学C++prime的一些自己的理解,不保证权威*先说说处理类型,什么是处理类型,就是在我们声明变量,声明各种东西,我们要用到int double 等等数据类型,越是到后面这类的类型会越来越多,并且随着表达式的复杂,数据的类型很难去掌控,所以我们需要一种东西来让我们能够在定义类型的情况下不容易出错,于是就有了auto与decltype。1.typedef与usi

2017-09-20 23:41:35 347

原创 数据结构复杂度与递归----C++初学之路

*以下是自己初学C++的笔记,为让自己坚持下去,遂坚持用博客记录,不保证权威*昨天的偶然接触的递归,发觉数据结构是一门充满智慧的东西,如果要我形容,我觉得C++就是一辆车,数据结构则是一张地图,要去哪里我得先学会车,去这里有几条路,哪条路更快,看地图。C++很重要,数据结构也同样重要,接下来的学习生活,我会C++与数据结构一起学习,另外多做做练习,给自己接下来定个目标,设计模式,编译原

2017-09-20 00:22:19 410

空空如也

空空如也

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

TA关注的人

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