c++学习
顾鸣丰
这个作者很懒,什么都没留下…
展开
-
c++面对对象学习
1、用面对对象的思想考虑圆与点1、搭建场景2、场景中应该有哪些对象:圆,点3、对象有的属性(1)圆:半径,圆心的x坐标和y坐标(2)点:x坐标,y坐标3、对象本身有的功能:(1)圆:判断点是否在圆内(2)点:计算点与圆心的距离(计算两个点的距离)4、管理者将对象联动起来1、main.cpp#include <iostream>#include "point.h"...原创 2019-01-11 20:09:40 · 208 阅读 · 0 评论 -
STL标准模板库(二)
1、set插入判断//判断插入成功与否void func1(){ set<int> s; s.insert(1); //插入的返回值 pair<set<int>::iterator,bool> ret = s.insert(1); if(ret.second) cout<<"插入成功:"...原创 2019-01-22 21:57:57 · 96 阅读 · 0 评论 -
设计模式次
1、工厂模式1、简单工厂#include <iostream>#include <string>using namespace std;//简单工厂class Clothes{public: virtual void show() = 0;};class T_shirt:public Clothes{public: void s...原创 2019-01-28 14:38:17 · 111 阅读 · 0 评论 -
c++继承
1、继承是什么继承是代码的复用,被继承的类称为基类(父类),继承的新类叫派生类(子类)。继承的类拥有父类的所有成员变量和成员函数,相当于类的完全复制。2、继承的语法class 新类名 :访问控制 要继承的类例如:class new:public old------>new类继承了old类。#include <iostream>#include <string&...原创 2019-01-16 19:36:40 · 100 阅读 · 0 评论 -
设计模式
1、设计模式基本原则1、创建型模式:通过和对象的创建有关(5种)2、结构型模式:组合类和对象(7种)3、行为型模式:类或对象的交互(11种)基本原则---->书2901、开放封闭原则:类的改动是通过增加代码进行的,而不是修改原代码2、依赖倒置原则:依赖于抽象(接口),不依赖于具体的类3、接口隔离原则:不应该强迫客户的程序依赖他们不需要的接口4、里式替换原则:任何抽象类出现的地...原创 2019-01-26 21:51:45 · 135 阅读 · 0 评论 -
STL标准模板库
1、主要内容1.1、算法—>函数(处理数据)1.2、容器—>数据结构(保存)1.3、迭代器—>遍历容器中的元素(统一容器的遍历方式)容器1、存放各种各样的数据:类模板2、结构:一般有链表、树、数组、栈、队列。。。。3、vector容器,deque容器,list容器算法库中有100多种算法头文件:1、排序:sort(排序开始的地方,排序结束位置的下一个位置)...原创 2019-01-21 18:57:03 · 103 阅读 · 0 评论 -
模板
1、模板1、模板的使用:template<typename 类型>1.1、隐式调用:myswap(d1,d2);编译器自动判断类型,通知函数1.2、显示调用: myswap(d1,d2);<>中写的是处理的数据类型2、模板的实现机制模板并不是真正的将数据类型传递给函数,数据类型是无法传递的,模板实际上是根据调用的时候来如果没有就创建相应的函数,有就直接调用。模...原创 2019-01-21 18:49:17 · 111 阅读 · 0 评论 -
类型转换和异常
1、类型转换1、_cast---->普通类型的强制转换2、reinterpret_cast—>指针类型的转换3、dynamic_cast---->类层次之间的类型转换成功返回转换类型的指针失败返回nullptr4、const_cast---->const变量转换成非const变量#include <iostream>using namespac...原创 2019-01-25 21:48:22 · 1644 阅读 · 0 评论 -
c++初学(2)
1、constconst在c语言在:const:修饰的是一个变量,不能通过被修饰的内容去改变空间的值。const 在c++中:const修饰的是一个常量。它具有一些特性(1)const常量存放在符号表中,正常情况下内存不会为其分配空间(2)使用时,会去符号表中取值(3)如果对const常量取地址,编译器会在内存中分配一块无名空间,但它本身不会使用1、const在c++中的运用:替...原创 2019-01-10 00:22:20 · 110 阅读 · 0 评论 -
友元与符号重载
1、友元(1)友元函数:如果一个函数是类A的友元函数,那么改函数可以通过对象使用A中的所有成员(破坏了类的封装性)使用方法:在类中声明函数,在函数名前面添加friend.注意:友元的声明不受访问控制符的限制,可以在类中的任意位置声明,一般放在类的最开始位置,便于查找。友元函数是“友”,不属于类的内部成员函数,是外部函数,因此没有隐藏的this指针(2)友元类:如果类A是类B的友元类,那...原创 2019-01-15 14:24:59 · 281 阅读 · 0 评论 -
C++初识
1、命名空间1、命名空间的定义namespace 命名空间名称{各个成员}2、命名空间的使用(1)命名空间的名字+域解析符(::)例如:Name A :: 命名空间中的成员;(2)用using打开要使用的命名空间例如:using namespace NameA ;(2)用using打开要使用的命名空间的部分成员using NameA :: g_a;(3)怎么使用命名空...原创 2019-01-09 00:46:27 · 78 阅读 · 0 评论 -
c++复习
1、命名空间## 2、函数参数1、默认参数c++允许形参带一个默认的值,当函数调用没给形参传值的时候,形参使用默认值Void func(int a,int b =10)如果函数有一个参数有默认值,该参数的右边所有参数都要有值。给形参设置默认参数的时候,函数声明和函数定义只能有一个赋值。2、占位参数顾名思义,这个参数是用来占位的,只有类型没有变量名。占位参数可以与默认参数一起使用Vo...原创 2019-01-24 09:37:58 · 127 阅读 · 0 评论 -
c++学习
1、运用指针的一些问题1、基类指针操作派生类对象数组----->基类和派生类的步长不一致2、虚析构函数:—>通过基类指针释放派生类对象:解决办法,将基类的析构函数设置成虚函数#include <iostream>using namespace std;class Animal{public: Animal() { cout...原创 2019-01-18 18:52:40 · 92 阅读 · 0 评论 -
多态
1、多态1、什么是多态一种调用函数有多种不同的表现形态。2、封装:对信息进行隐藏,对外提供访问限制继承:代码复用多态:功能扩展–>在不改变原有代码的基础上进行添加3、确认实际调用的函数1、看指针类型---->Animal *2、看函数类型---->虚函数virtual void eat()3、看pa指向对象的函数—>调用pa指向对象的函数 —>程...原创 2019-01-18 18:48:25 · 140 阅读 · 1 评论 -
c++学习
1、拷贝构造函数1、用途(1)在函数形参是对象,实参传到形参的传递会用到(2)函数的返回值是对象的时候会用到2、格式类型类名(const 类名 &变量名)3、如果类内部没有写拷贝函数,使用的时候系统会自动添加,但是系统添加的拷贝函数只在值的复制(浅拷贝),在类中成员有指针的时候会出错。因此,在类中有指针的时候需要自己写拷贝函数,复制的时候连同堆上的空间一同复制过来(深拷贝)...原创 2019-01-13 18:46:29 · 86 阅读 · 0 评论 -
设计模式--结构型模式
1、原型模式#include <iostream>#include <string>using namespace std;//原型模式---->处理拷贝问题,在内部加入克隆函数class Person{public: virtual void show() = 0; virtual Person *clon() = 0;};c...原创 2019-01-28 21:20:46 · 167 阅读 · 0 评论