- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 c++ primer plus阅读笔记13---虚函数 为什么要虚析构函数?
虚函数 虚函数主要是用来实现动态多态的,我们来看下边的代码:class Base{ ... public: void function() { ... }};class Extends:public Base{ ... public: void function()
2017-08-17 17:16:18 392
原创 c++ primer plus阅读笔记12---手动调用析构函数
再谈定位new运算符 我们来看代码:#include <iostream>#include <string>#include <new>using namespace std;const int BUF=512;class JustTestting{private: string words; int number;public: JustTestting(
2017-08-17 12:06:35 1719
原创 c++ primer plus阅读笔记11---深拷贝与浅拷贝
浅拷贝与深拷贝 默认复制构造函数逐个复制非静态成员,复制的是成员的值。如果成员是类对象,则将使用这个类的复制构造函数来复制成员对象。有以下的代码:#include <iostream>class A{private: int *p;public: A() { p = new int[20]; std::cout<<"构造函数"<<st
2017-08-16 21:35:47 879
原创 c++ primer plus阅读笔记10---定位new using namespace
定位new运算符 通常,new运算符负责在堆中找到一个能够满足要求的内存块,但是定位运算符能让程序员指定需要使用的未知,可以被用来设置器内存管理,处理等需要堆特定内存地址处理的情况。使用定位new运算符时候要包含new头文件,用法举例:struct chaff{ char dross[20]; int slag;};char buffer1[50];char bu
2017-08-16 10:55:14 235
原创 c++ primer plus阅读笔记9---内部外部链接
静态变量 我们来看以下几种情况:int global=1000;static int one_file=50;int main(){ ...}void func1(int n){ static int count=0;}上述的静态变量 global,one_file,count在整个程序执行的期间都存在,但是在func1函数中生命的count作用于为局部,但是即使f
2017-08-15 21:24:35 241
原创 c++ primer plus阅读笔记8---decltype
decltype关键字 我们来看下边这样一种情况:template<class T1,class T2>void ft(T1 x,T2 y){ ... ?type? z=x+y; //因为x和y的类型不确定,因此写这个模板函数时候z的类型无法预知,怎么办呢?}c++有个decltype关键字,可以这么写:decltype(x+y) xpy=x+y;当返回值不确定时候,例如:
2017-08-15 20:34:05 295
转载 Ubuntu 16.04 系统没有声音的解决办法
Ubuntu 16.04 系统没有声音的解决办法转载自:https://lms.im/os/no-sound-solution-ubuntu-16-04.html独立安装了 Ubuntu 16.04 系统后,打开发现没有声音,记得第一次安装的时候也是这个问题,后来具体通过修改什么文件解决的忘记了,这回遇到却没地方找,实在是后悔不已。经过几番折腾,这回找到的办法较上次简单,不
2017-08-15 20:16:40 1999
原创 c++ primer plus阅读笔记7---模板特化
1.函数重载 仅仅函数的返回值类型不同不能实现重载; 参数只有const和非const类型的可以实现重载;
2017-08-14 17:27:25 306
原创 c++ primer plus阅读笔记6---内联函数引用变量
1.内联函数 普通函数的调用过程中,在汇编层次看,首先将函数的返回地址压栈,然后call函数,跳转到函数的代码块去执行,完了之后从栈里弹出来返回地址。 内联函数不需要跳转到函数的代码块。在编译时,编译器就已经将函数代码和其他代码块“内联起来了,也就是编译器将使用相应的函数代码替换函数调用。”这样程序就无需跳转到另一个位置执行代码再跳回来,但是缺点是占用更多内存。 2.引用变量 引用变量在生命
2017-08-13 21:23:55 258
原创 c++ primer plus阅读笔记5---指针const函数指针数组
1.指针和const指向常量的指针:int age=39;const int *pt=&age; //这句话的意思是相对指针pt来说,age的值是常量,例如下边这种操作就是非法操作*pt+=1; //非法操作,但是age不是常量,可以使用通过age修改值*pt=20 //非法操作age=20 //合法操作指针的值本身是常量:int *const p=&age; //指针常量,指针指
2017-08-13 15:57:10 346
原创 c++ primer plus阅读笔记4---struct
1.struct 什么时候后用. 什么时候用->当struct有名字时候使用.,例如:struct person{ int age; char *name;}person per;per.age; //可以用点person *p=&perp->age; //用->2.c语言和c++中结构体的区别在C语言中,定
2017-08-12 16:45:17 256
原创 c++ primer plus阅读笔记3---指针问题
1.指针的危险我们来看这样一个例子:long* fellow; *fellow=23333; fellow确实是一个指针,但是指向哪里呢?上述代码没有将地址赋值给fellow,那么23333将被放在哪里呢?我们不知道。由于fellow的值没有内初始化,他可能有任何值。不管值是什么,程序都将它解释位存储23333的地址。因为这个地址是未知的,有可能超
2017-08-11 16:59:47 233
原创 c++ primer plus阅读笔记2---结构体共用体枚举
1结构体中的位字段struct torgle_register{ unsigned int SN :4 //SN 占用4个bit unsigned int :4 // 4bit没有占用 bool goodIn :1 //goodIn占用1个bit bool goodTorgle :1 //goodTorgle占
2017-08-09 22:15:34 357
原创 c++ primer plus阅读笔记1---cin换行符等问题
1.关于cincin 使用空白(空格,制表符和换行符)来确定字符串结束的位置,这意味着cin在获取字符串数组输入时只读取一个单词。读取单词后,cin将该字符串放到数组中,并自动在结尾添加空字符。2.面向行的输入:getline()和get()getline()读取整行,它使用通过回车键输入的换行符来确定输入结尾。getline(name,20) 读取20个字符到name数组中,不保
2017-08-09 13:35:50 2622
原创 IDA权威指南阅读笔记3
1.使得反汇编器找回自我首先看一段反汇编的代码:第一行调用了loc_A04B0D7处的代码,但是loc_A04B0D7这地址的代码却没有被反汇编出来,而是作为反D2-D7之间的五字节指令的一部分,汇编器迷失了自己。手动修复:在loc_A04B0D7 按下热键U,再按下热键C修复修复后效果:2.反静态分析call fuction //这是一个虚假调用
2017-08-09 13:34:33 290
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人