c++学习笔记
leotoneo
ls all | grep only
https://github.com/leotoneo
展开
-
c++学习笔记(二):c++拷贝构造函数应用的四种场景
#include using namespace std;//拷贝构造函数的第一、二应用场景class AA{public: AA() //无参构造函数 默认构造函数 { cout<<"我是构造函数,自动被调用了"<<endl; } AA(int _a) //无参构造函数 默认构造函数 { a = _a; }// AA(const AA &obj2)//原创 2015-10-21 16:33:59 · 2719 阅读 · 1 评论 -
c++学习笔记(十七):STL简介及vector
STL简介C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), lists(链表), 和 stacks(栈)等.C++ STL 提供给程序员以下三类数据结构的实现:标准容器类:1)顺序性容器vector 从后面快速的插入与删除,直接访问任何元素deque原创 2015-10-28 15:08:38 · 400 阅读 · 0 评论 -
c++学习笔记(十五):函数指针
1、先看看是如何定义一个数组类型的: //如何定义一个数组类型 typedef int (MyArrayType)[10]; MyArrayType myArray; ////int array[10]; myArray[0] = 1; { //如何定义一个数组指针的类型 int array2[10]; typedef int (*PMyArrayType)[10]原创 2015-10-27 18:11:59 · 290 阅读 · 0 评论 -
c++学习笔记(十四):多态的综合运用——模拟发动报文
本项目总工包括三个部分:1、抽象接口层2、抽象接口层的实现类层3、业务框架层4、测试函数1、抽象接口层:class SocketProtocol{public: SocketProtocol(void) { } virtual ~SocketProtocol(void) { } //客户端初始化 获取handle上下 virtual in原创 2015-10-26 18:54:23 · 316 阅读 · 0 评论 -
c++学习笔记(十六):函数模板
函数模板: 1 函数模板可以像普通函数一样被重载2 C++编译器优先考虑普通函数3 如果函数模板可以产生一个更好的匹配,那么选择模板4 可以通过空模板实参列表的语法限定编译器只通过模板匹配测试代码:int Max(int a, int b){ cout<<"int Max(int a, int b)"<<endl; return a > b ? a : b;}原创 2015-10-27 18:37:41 · 340 阅读 · 0 评论 -
c++学习笔记(十三):纯虚函数和抽象类
1、 纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本。 纯虚函数为各派生类提供一个公共界面 纯虚函数说明形式: virtual 类型 函数名(参数表)= 0;一个具有纯虚函数的基类称为抽象类。 2、有关多继承的说明:被实际开发经验抛弃的多继承工程开发中真正意义上的多继承是几乎不被使用的多重继原创 2015-10-26 16:24:26 · 363 阅读 · 0 评论 -
c++学习笔记(十二):C++编译器多态实现原理
1、 多态基础多态的实现效果多态:同样的调用语句有多种不同的表现形态;多态实现的三个条件 有继承、有virtual重写、有父类指针(引用)指向子类对象。多态的C++实现 virtual关键字,告诉编译器这个函数要支持多态;不要根据指针类型判断如何调用;而是要根据指针所指向的实际对象类型来判断如何调用多态的理论基础 动态联编PK静态联编原创 2015-10-26 14:42:05 · 435 阅读 · 0 评论 -
c++学习笔记(十一):函数重载VS函数重写
函数重载必须在同一个类中进行子类无法重载父类的函数,父类同名函数将被名称覆盖重载是在编译期间根据参数类型和个数决定函数调用函数重写必须发生于父类与子类之间并且父类与子类中的函数必须有完全相同的原型使用virtual声明之后能够产生多态(如果不使用virtual,那叫重定义)多态是在运行期间根据具体对象的类型决定函数调用class Parent01{publi原创 2015-10-26 13:30:30 · 955 阅读 · 0 评论 -
c++学习笔记(十):运算符重载综合——自定义数组类
通过几天的对运算符重载的学习,准备自定义一个数组类,并对一些运算符进行重载,话不多说上代码。定义文件Array.h:#ifndef _ARRAY_H_#define _ARRAY_H_class Array{private: int mLength; int* mSpace;public: Array(int length); Array(con原创 2015-10-24 10:08:07 · 1388 阅读 · 0 评论 -
c++学习笔记(九):运算符重载进阶
前面学过用友元关键字修饰全局函数来对运算符进行重载。下面介绍用类的函数成员来进行函数重载:class Complex{public: Complex(int a, int b) { this->a = a; this->b = b; } void printCom() { cout<<a<<" + "<<b<<"i "<<endl; } //通过成员函数完原创 2015-10-23 21:08:41 · 381 阅读 · 0 评论 -
c++学习笔记(八):运算符重载的推演
为什么要有运算符重载先看一个例子:public: Complex(int a, int b) { this->a = a; this->b = b; }public: int a; int b;};void Test1(){ { int a = 0, b = 0; int c = a + b; //对于基础类型,编译已经知道如何进行加减 }原创 2015-10-23 10:35:56 · 356 阅读 · 0 评论 -
c++学习笔记(七):友元函数和友元类
友员用关键字friend声明。友员是对类操作的一种辅助手段。一个类的友员可以访问该类各种性质的成员。一、友元函数1、友员函数通过对象参数访问私有数据成员2、成员函数通过this指针在对象上操作友元函数 VS 成员函数:lass A { private: int i ; friend void FriendFu原创 2015-10-23 10:02:39 · 488 阅读 · 0 评论 -
c++学习笔记(五):c++中的static关键字
C++中static关键词主要用于修饰类的成员函数及成员变量。静态成员 :Ø 关键字 static 可以用于说明一个类的成员 静态成员提供了一个同类对象的共享机制Ø 把一个类的成员说明为 static 时,这个类无论有多少个对象被 创建,这些对象共享这个 static 成员Ø静态成员局部于类,它不是对象成员静态数据成员的说明和初始化:#i原创 2015-10-22 15:10:18 · 426 阅读 · 0 评论 -
c++学习笔记(六):C++面向对象模型初探
1.抛出问题C++中的class从面向对象理论出发,将变量(属性)和函数(方法)集中定义在一起,用于描述现实世界中的类。从计算机的角度,程序依然由数据段和代码段构成。C++编译器如何完成面向对象理论到计算机程序的转化?换句话:C++编译器是如何管理类、对象、类和对象之间的关系具体的说:具体对象调用类写的方法,那,c++编译器是如何区分,是那个具体的类,调用这原创 2015-10-22 15:43:50 · 613 阅读 · 0 评论 -
c++学习笔记(四):c++中new delete关键字 VS c语言中malloc free函数
1 new delete 操作符号 c++的关键字,malloc free是c语言的库函数。 2 new malloc都是在堆上分配内存 由delete free释放 。分配释放基础类型 、数组类型时两者实现基本相同,分配释放对象时两者有根本区别对象:new操作符会自动的调用这个类的构造函数 、delete操作符会自动的调用这个类的析构函数。new delete VS原创 2015-10-22 14:02:00 · 726 阅读 · 0 评论 -
c++学习笔记(三):深拷贝与浅拷贝及等号运算符重载
#include#include//浅拷贝例子 没有自己写复制构造函数而是采用默认的复制构造函数class name{ public : name(char *pn) ; ~ name() ; protected : char *pname ; int size ;} ;name :: name(char原创 2015-10-22 09:44:33 · 5056 阅读 · 0 评论 -
c++学习笔记(一):c++构造函数
#include using namespace std;class Test{public: //构造函数 无参构造函数 默认构造函数 // Test() { a = 10; } //带参数的构造函数 //调用方法3中 Test(int mya) { a = mya; } //第三中初始化对象的方法 //赋值构造函数 copy构造函数 //co原创 2015-10-21 14:36:57 · 373 阅读 · 0 评论 -
VS2013常用快捷键
VS2013常用快捷键: 1.回到上一个光标位置/前进到下一个光标位置 1)回到上一个光标位置:使用组合键“Ctrl + -”; 2)前进到下一个光标位置:“Ctrl + Shift + - ”。 2.复制/剪切/删除整行代码 1)如果你想复制一整行代码,只需将光标移至该行,再使用组合键“Ctrl+C”来完成复制操作,而无需选择整行。 2)如果你想剪原创 2015-11-19 09:29:37 · 451 阅读 · 0 评论