摘要: 含有虚函数的类,它的内部含有虚指针指向虚函数表,此时的空类占有4个字节,不管有多少个虚函数,只需要一个虚函数指针指向虚函数表就可以了 关于virtual的理解,继承肯定就是完完整整的把父类包含进去,父类的vitual函数直接被虚化掉,直接链接到子类的那个override函数上。如果子类没有重写,那么 阅读全文
posted @ 2018-03-15 15:50 tonyey 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 总结:CPP编译的时候,从上往下,遇到不匹配,声明扩展了一个类的作用域(此时最多只能创建类的指针或者引用), 由于没有定义是不可能使用到类的成员 完成类型转换的时候,一般两个类的转换,两个接口都放在下面的那个类里面实现 函数内部要求必须有返回值(内->外) 首先就得创建这种类型的对象毕竟要返回这种类 阅读全文
posted @ 2018-03-15 15:49 tonyey 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 友元类通常设计为一种对数据操作或类之间传递消息的辅助类(注意一下顺序) 在每个类都重载了对应的操作之后,可以使用模板进行公共接口的创建 Template<class T> Void show(T &t) { cout<<t<<endl;} 这样就把相同功能统一了接口 在类这个级别的重载运算符,其实就 阅读全文
posted @ 2018-03-15 15:48 tonyey 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 1.注意:函数指针前面*,&都是一样的没啥实际意义,除了把实例化函数块的时候,需要指针或者引用修饰 cout << typeid(my1.show).name() << endl; cout << typeid(&my::show).name() << endl; 直接调用成员函数和通过对象调用成员 阅读全文
posted @ 2018-03-15 15:47 tonyey 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 1.面向过程是:数据与操作分离,数据容易被意外修改 2.面向过程通过私有化的权限进行数据封装 3.类型后辍:类名 operator “” _XXXX(int data) 增加后缀 { Return {(unsigned int)data};大括号给结构体初始化 传进来的参数要和原数据类型一致的参数类 阅读全文
posted @ 2018-03-15 15:46 tonyey 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 1.Auto无法区分常量变量,引用常量(顶层const被忽略了),不能识别引用变量,const和&都无法识别 Auto不能放在结构体内部 2.decltype()能识别引用,能获取常量属性,typeid()只能获取类型,无法识别。。。 3.template<typename T1,typename 阅读全文
posted @ 2018-03-15 15:44 tonyey 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 1.static_cast静态转换<>要转换的类型,不适用于指针转换 reinterpret_cast<char*>()指针类型的转换 涉及到const,必须用const_cast 打印地址的时候用reinterprt_cast<void*> 2.dynamic_cast<>()动态绑定(多态)子类 阅读全文
posted @ 2018-03-15 15:43 tonyey 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 1.一个类重写了operator(),可以f()—相当于匿名对象—f()()相当于调用operator()函数 把对象名当成函数名来使用--伪函数 2.通过成员函数创建多线程 a) 可以用成员函数去实现多进程 多线程最好函数不要重名 利用成员函数构建多线程 毕竟成员函数是共享的 b) thread 阅读全文
posted @ 2018-03-15 15:42 tonyey 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 引用与函数指针: 函数指针就是把函数名挖掉变成*p 函数指针的类型就是把p去掉 函数指针的引用(引用就是在类型和名字的中间加&) 函数指针加一个()就成调用函数了 p() 总结: 1.相当于初始化int*(函数指针类型 - 包含返回类型和参数) 2.初始化相当于初始化函数块,相当于能做什么事 1的初 阅读全文
posted @ 2018-03-15 15:40 tonyey 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 副本机制 lambda不能取地址,无法当作函数指针 [1](2){3}(4)匿名lambda 1捕获列表 =只读 2后加mutable就可以修改副本 &读写 全部改变 对部分进行操作是,直接在[]放变量,用&代表读写,只写变量名只可读 =只能用于全部 想不只是改变副本,就加&,进行完全修改 cons 阅读全文
posted @ 2018-03-15 15:38 tonyey 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 泛型的概念:自动推理类型 C++/C 类型检测严格 1.赋值的时候是要求严格匹配,在初始化的时候是可以转换的. 2.在对于初始化的时候,()是单值,{}这个是数组,字符串等等 cin.get() 用法1: cin.get(字符变量名)可以用来接收字符 用法2:cin.get(字符数组名,接收字符数目 阅读全文
posted @ 2018-03-15 15:36 tonyey 阅读(102) 评论(0) 推荐(0) 编辑
摘要: Django高级部分 1.上传图片: 当Django在处理文件上传的时候,文件数据被保存在request.FILES,FILES中的每个键为<input type="file" name="" />中的name 注意:FILES只有在请求的方法为POST 且提交的<form>带有enctype="m 阅读全文
posted @ 2018-03-15 15:26 tonyey 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 1.模板介绍:模版系统致力于表达外观,而不是程序逻辑 视图:模板=1:n 模板包含:HTML的静态部分 动态插入内容部分 Django模板语言,简写DTL,定义在django.template包中,由startproject命令生成的settings.py定义关于模板的值: DIRS定义了一个目录列 阅读全文
posted @ 2018-03-15 10:34 tonyey 阅读(138) 评论(0) 推荐(0) 编辑