C++学习之路
文章平均质量分 67
福建陈冠希
这个作者很懒,什么都没留下…
展开
-
指针与引用的个人理解----C++初学之路
ps:自己才刚刚开始学习C++,以下是自己的学习记录,切勿完全相信。今日学习了主要是引用&与指针*先说说引用,引用是一种绑定,可以说是一种别名,根据我自己的理解,就像,我妈叫我儿子,我叔叫我侄子,两个都是我。那么我妈打了我一巴掌,是不是就是打了我叔的侄子。int i1=100;int &i2=i1;这样就是i2是一种int型引用,绑定了i1,两者都是一样的i2=10原创 2017-09-15 23:38:06 · 237 阅读 · 0 评论 -
关于继承与委托设计笔记----C++学习之路
1.Composite假如写一个file system,可以知道一个文件系统可以包括有目录和文件。目录里面可以放文件。由图中可得,左边的Primitive就是一个文件,右边的Composite就是一个目录。目录中需要一个容器来来存放文件,当然,目录中也可以存放目录,这个时候vector中存放的指针应该怎么做?那就让文件和目录同时继承Component,让vector来存原创 2017-11-04 20:07:31 · 219 阅读 · 0 评论 -
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 · 511 阅读 · 0 评论 -
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 · 1832 阅读 · 0 评论 -
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 · 409 阅读 · 0 评论 -
某天,我收到一封来自母亲的家书----C++初学之路
某天,我收到一封来自母亲的信,我很庆幸我有这样的母亲,也很愧疚:1:在外要注意照顾好自己,饮食要注意卫生,天冷了要记得添加衣服。学习、娱乐、锻炼三者要合理安排,要常锻炼身体,你的健康是妈妈最大的幸福。 2 :你说你在大学时要开网店,妈妈不反对,锻炼一下自己的经营管理的经验也不错。只是开网店在电脑前待着的时间长,对自己的身体不好,所以你要调整好作息时间,要劳逸结合,不能让自己原创 2017-10-17 14:20:45 · 351 阅读 · 0 评论 -
虚函数 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 · 3386 阅读 · 0 评论 -
template template parameter模板模板参数笔记----C++学习之路
1.如标题所说,也就是在模板中嵌入另一个模板举个例子:template<typename T, template class Container >class XCls{private: Container c;public: ....};那么怎么取使用呢?templa原创 2017-11-12 02:06:57 · 871 阅读 · 0 评论 -
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 · 231 阅读 · 0 评论 -
搭建一个简易的时间服务器笔记----C++学习之路
步骤:1.创建TCP套接字int listenfd;listenfd = Socket(AF_INET,SOCK_STREAM,0);关于socket的函数介绍:点击打开链接第一个参数是协议族,具体在上面的链接有介绍,这里是一个ipv4的协议族。第二个参数是协议类型,这里是一个tcp协议。第三个参数是用于制定某个协议的特定类型,通常某个协议只有一种特定类型,这样这个参数只原创 2017-11-19 21:23:36 · 449 阅读 · 0 评论 -
重载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 · 504 阅读 · 0 评论 -
关于网络传输层的一些概念笔记----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 · 325 阅读 · 0 评论 -
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 · 323 阅读 · 0 评论 -
关于重载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 · 205 阅读 · 0 评论 -
关于静态绑定与动态绑定的辨别笔记----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 · 180 阅读 · 0 评论 -
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 · 324 阅读 · 0 评论 -
转换函数笔记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 · 195 阅读 · 0 评论 -
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 · 410 阅读 · 0 评论 -
specialization 模板特化笔记----C++学习之路
1.什么叫做特化,就是模板泛化的反义词,对某些特殊化。当我们建立了一个模板,我们希望把这个模板中的某些泛化的东西特殊化。 2.从例子来看:template struct hash{ };这个hash是泛化,当Key被绑定了,它不再是一个 可变的了,例如:、template<>struct hash{ size_t operator()(char x) const {原创 2017-11-10 16:52:39 · 464 阅读 · 0 评论 -
拖了将近一个月的----C++初学之路
上次写博客的时候是9-20日,期间学校组织了两次实习,由于实习的方面的验收以及近期各种自己喜欢的公司的面试,拖了将近一个月没有记笔记。也发现笔记这个东西很重要,一个月的期间自己学习了vector容器的有关内容,但是现在要让我来回顾下vec,我只能说vec是一个很重要的容器,具体函数,用法,大脑一片空白,但是要回顾的时候,又没有笔记供我自己来回忆。所以笔记这个东西真的很重要,接下来学原创 2017-10-16 15:07:00 · 256 阅读 · 0 评论 -
String类的设计笔记----C++学习之路
关于带有指针的类的三大函数:拷贝构造,拷贝赋值,析构函数。用String类为例子的学习笔记原创 2017-10-29 21:15:32 · 361 阅读 · 0 评论 -
防卫式声明笔记----C++学习之路
防卫式声明用在头文件,是用来防止同一个文件被包含两次。分为两种类型。 以下是ID DebugEve 的博客地址:点击打开链接原创 2017-10-29 18:33:30 · 477 阅读 · 0 评论 -
string的皮毛与范围for----C++学习之路
/*以下是自己学习的心得与笔记,书籍《C++prime》平日会学习的书籍有《数据库系统导论》《计算机组成原理》《计算机系统导论》*/最近又倒回去看了看之前学的没记笔记的知识。学了string的皮毛以及范围for。大部分我们用到的库函数都属于命名空间std,所以要了解关于命名空间的using声明。 我的理解是,举个例子,假如我们要使用cout与原创 2017-10-17 15:01:19 · 249 阅读 · 0 评论 -
C++中内存分配----C++学习之路
1.stack与heap的区别:stack(栈): 存在于某个作用域的一块内存空间。也就是说当你调用一个函数,函数本身,也就是在这个函数的scope中创建一块地址来存放参数,以及返回地址。离开作用域之后自动清除stack。heap(堆):由操作系统提供的一块global内存空间,用动态分配也就是new的方式来动态获得这块,但是需要程序员自己delete它。stack ob原创 2017-10-29 03:27:39 · 206 阅读 · 0 评论 -
处理类型(auto,decltype)----C++初学之路
*以下是自己自学C++prime的一些自己的理解,不保证权威*先说说处理类型,什么是处理类型,就是在我们声明变量,声明各种东西,我们要用到int double 等等数据类型,越是到后面这类的类型会越来越多,并且随着表达式的复杂,数据的类型很难去掌控,所以我们需要一种东西来让我们能够在定义类型的情况下不容易出错,于是就有了auto与decltype。1.typedef与usi原创 2017-09-20 23:41:35 · 353 阅读 · 0 评论 -
数据结构复杂度与递归----C++初学之路
*以下是自己初学C++的笔记,为让自己坚持下去,遂坚持用博客记录,不保证权威*昨天的偶然接触的递归,发觉数据结构是一门充满智慧的东西,如果要我形容,我觉得C++就是一辆车,数据结构则是一张地图,要去哪里我得先学会车,去这里有几条路,哪条路更快,看地图。C++很重要,数据结构也同样重要,接下来的学习生活,我会C++与数据结构一起学习,另外多做做练习,给自己接下来定个目标,设计模式,编译原原创 2017-09-20 00:22:19 · 419 阅读 · 0 评论 -
对const的补充---C++初学之路
*以下是自学《C++PRIME》以及通过网络的个人学习记录,不保证权威*今日的插曲:偶然的一次搜索,看到一个问题,一个数组,里面又六个数字,如何让这个数字头尾交换来输出。看到这个问题,自己第一印象,那就用循环呗,A[0]和A[5]换呗,一次一次的换。然后再去看看其他人是如何做的。看到一个回答,说递归,然后列了个代码,代码如下:void re(int* A,int be,int en原创 2017-09-18 22:57:00 · 338 阅读 · 0 评论 -
const限定符----C++初学之路
/*以下是我自己的学习笔记,不能保证完全正确,希望能得到批评与教育*/ 周六看了会const,感觉自己是愚笨得,一章节大概四页得知识,自己一看就是看了两个小时。 说说自己得情况,自己为什么看了两个小时,可能是自己理解得问题,自己一直在想,为什么c++中非得整个const得东西,我直接int a = 250 ;我不去修改不就行了吗。以下总结下自己两个小时得收获。 1.为原创 2017-09-17 23:11:52 · 268 阅读 · 0 评论 -
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 · 268 阅读 · 0 评论 -
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 · 188 阅读 · 0 评论 -
继承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 · 229 阅读 · 0 评论 -
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 · 1059 阅读 · 0 评论 -
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 · 250 阅读 · 0 评论 -
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 · 195 阅读 · 0 评论 -
委托Delegation 笔记----C++学习之路
1.委托的概念:委托和复合非常相似,也是一个类含有has-a一个东西,但是这种拥有很虚,我们不知道何时才会拥有。只在我想要用到这个东西的时候才去调用,这是与复合的不同。委托的另外一个术语就很明了:Compositon by reference含有指针的复合,为什么不是by point,因为约定俗成,就是by reference。举个例子:class StringRep;cla原创 2017-10-31 14:19:40 · 721 阅读 · 0 评论 -
复合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 · 1178 阅读 · 0 评论 -
static静态处理笔记----C++学习之路
在分类上,static主要分为static data 与static function。 1.静态数据:static data,只能存在一份!举个例子,如果我们不是静态数据,那么可以有多份,例如一个银行类,里面可以有个账户信息info,那么这个info可以有很多份,不同的人都应该有属于自己的账户,所以不能设置为静态数据。如果是银行利率rate,那么只要一份,static double原创 2017-10-30 22:15:38 · 188 阅读 · 0 评论 -
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 · 862 阅读 · 0 评论 -
套接字地址结构笔记----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 · 327 阅读 · 0 评论