
学习note
秦伟H
目标是略懂:C++,深度学习,三维重建,CV,SLAM,无人机,无人车,多传感器融合,组合导航。有事邮件:qw072117@foxmail.com huqinwei987@gmail.com
展开
-
C++ virtual函数 实现机制
不知道关键词用的对不对(什么smartPtr之类的,也不是本来意思,就是随便起个名字),就是看看virtual这个属性是怎么向下(子孙)继承的,又能不能取消掉测试代码如下:#includeusing namespace std;class A{public: virtual void printSelf(){cout << "A" << endl;}pri原创 2016-02-17 22:11:29 · 8048 阅读 · 2 评论 -
C++primer pe13_15(还有13——4、9、12中NoName类的指针疑惑)
new Sales_item; new Sales_item; new Sales_item; new Sales_item;//这些必须主动delete//计算析构函数的调用次数,在析构函数中定义了一个打印语句以供判断#include"head.h"#include"Sales_item.h"void fcn(const Sales_item *trans,原创 2012-04-23 10:36:14 · 835 阅读 · 0 评论 -
C++ primer -pe13——10
小总结:赋值操作符和复制初始化通常在一起使用,两个都有合成版本,有时候可以不用管另外private: Class(const Class &);可以防止用户代码复制该类对象,但是友元和成员仍可进行复制,就干脆只声明不定义,此种方法只是防止出现结果,但不能阻止调用,调用将导致链接失败。//那么,怎么用成员和友元来测试这个复制呢,明天解决回忆了一下static知识点,利用变原创 2012-04-22 23:55:16 · 780 阅读 · 0 评论 -
句柄的使用~接上边句柄定义--《C++ primer》笔记
坐火车了,不学了,今天的绝笔。。。。。。====================================================================================================================================接上边,因为容器管理对象太麻烦,存基类和派生类都不好,指针不好管理,所以要用原创 2012-05-06 16:21:12 · 1789 阅读 · 0 评论 -
抽象基类,容器、句柄类与继承--《C++ Primer》笔记
纯虚函数(pure virtual function),包含纯虚函数的类是抽象基类(abstract base class)。不能创建抽象类型的对象(object)。方法,在函数形参表后面写上 = 0,如果写1,error: invalid pure specifier (only ‘= 0’ is allowed) before ‘;’ token使用目的,防止用户建立Disc_item原创 2012-05-05 23:14:17 · 7745 阅读 · 1 评论 -
继承情况下的类作用域
构造函数和析构函数中的虚函数,构造和析构也是分阶段的,也就是说从无到基类对象,再到派生类对象,从派生类对象到基类对象,再到无。这中间有一个状态就是基类对象,此时直接或间接调用虚函数,只能是基类中的版本,因为后边的还没形成呢。因为如果使用派生类中的版本,可能需要访问派生类对象的成员,而这些还不存在,为了避免这个崩溃风险,就给屏蔽了。继承情况的类作用域:派生类的作用域嵌套在原创 2012-05-04 18:10:49 · 1636 阅读 · 0 评论 -
复制控制和继承--《C++ primer》笔记
复制构造函数和赋值操作符#includeclass Base {public: Base(double t = 1.2) : test(t) {}public: double test; };class Derived : public Base {public://复制构造函数不会自动唤醒 //Base::Base(const Base&) not invoked原创 2012-05-04 00:54:12 · 2253 阅读 · 0 评论 -
转换与继承--《C++ primer》笔记
派生类到基类的转换基本上可以直接转,就提取派生类的基类部分就行了,其余的“切掉”(忽略)//派生类和基类的转换,想把派生类对象转成基类对象,基本上是各种直接间接的“复制”,通过copy-constructor 和operator=等形式,把派生类对象的基类部分赋予新对象#includeclass Item_base{};class Bulk_item : public Ite原创 2012-05-03 01:53:32 · 3049 阅读 · 0 评论 -
继承与静态成员,转换与继承
继承与静态成员,搞不太懂,这些乱七八糟的名词(mark)staticDerived.cppstatic,"整个继承层次只有一个这样的成员,无论从基类派生出多少类,每个static成员只有一个实例"读不太懂,是说不能覆盖之类的吧,对了,覆盖是无视基类部分的成员,还是修改了基类部分?实践证明,virtual和static都可以在派生类中重写函数,并且都不是“覆盖”,通过作用域控制符就可原创 2012-05-02 14:45:01 · 1244 阅读 · 0 评论 -
公有、私有和受保护的继承--《C++ primer》笔记
protectedInheritance.cpp间接继承和书本描述不一致,书上说因为第一重继承变private,第二重继承才无法访问Base::i~是private,现实是提示Base::i是protected,好像跳过Private_derived类直接找基类了。继承对基类的保护,还是普遍规律,只能越来越严,不能变松。还有,标号不是限制派生类对基类成员(表达不清楚,是基类成员还是从基原创 2012-05-01 01:03:19 · 2013 阅读 · 1 评论 -
友元关系与继承——《C++ primer》笔记,书中的小bug
友元关系,friendship不能继承,书中想表达的意思是这种friendship不能继承是双向的。也就是说,自己朋友的儿子不能访问自己,朋友也不能访问自己的儿子,唯一的关联是朋友和自己但是,书中的代码表达确实是有错误的,如果我的想法是错的,欢迎指正。。。。。。。。。。。。测试代码如下://派生类不能继承友元关系,双向的,既不能享受访问权力也不能被访问#include原创 2012-05-02 11:29:37 · 3189 阅读 · 2 评论 -
virtual与其他成员函数--《C++ primer》 笔记
从派生类到基类的转换基本使用方法:double print_total(const Item_base&, size_t){std::cout << "test" << std::endl; return 0.3;} //function with an Item_base reference parameter Item_base item; //object o原创 2012-04-30 01:14:12 · 1524 阅读 · 1 评论 -
第四部分:十五章 面向对象编程:派生
基本概念接触基类与派生类,虚函数,多态,动态绑定思想:共同点做基类的公共部分,保留每个派生类都具有的共性,然后根据各自特点override原来的virtual函数(成员),代码重用吧也算dynamicBinding.cpp//定义基类base class,虚函数virtual,protected权限,虚析构函数virtual destructor,动态绑定dynamic原创 2012-04-29 16:47:15 · 1247 阅读 · 0 评论 -
将函数对象用于标准库算法
标准库函数对象,eg.equal_to适配器eg. bind2nd(less_equal(), 10)not1(bind2nd(less_equal(),10))//函数对象的函数适配器#include"head.h"int main(){ //绑定器binder:bind1st,bind2nd;绑定一个现成的实参到二元函数对象函数第一个或第二个参数,使之变成一元函数原创 2012-04-29 00:04:21 · 1277 阅读 · 0 评论 -
转换与类类型
转换操作符//类类型转换、转换操作符#include"head.h"class SmallInt{public: SmallInt(int i = 0): val(i){ if(i 255) throw std::out_of_range("Bad SmallInt initializer"); } //期待不合格——id 在输入的末端?~类末端老忘了分原创 2012-04-29 14:40:47 · 1321 阅读 · 0 评论 -
嵌入式学习笔记(一)——初识NAND FLASH
初识NAND FLASH今天买了本二手书(《嵌入式系统原理及接口技术》)刚从目录扫到“NAND FLASH”这个概念,晚上就得到了老师的任务,要我做NAND FLASH FTL,神马香港博士做好了接口,让改程序神码的,虽然不明白什么意思,但感觉像驱动开发,觉得很厉害!!!说是让我先去搜索中文资料,随后发给我英文版的资料。好了,开始搜索吧,先百科“NAND FLASH”,再百度“NA原创 2013-10-15 22:43:48 · 6819 阅读 · 0 评论 -
ARM入门实践(一)----Mini6410上最简单的LED点灯裸机程序
6410有两种运行机制:一种是将程序直接从SD卡加载到内存运行,一种是将SD的镜像烧到NAND FLASH上启动,因为我的FLASH上系统有用原创 2013-11-11 15:28:31 · 5837 阅读 · 0 评论 -
一步一步学调试——gdb命令小结
1.进入gdb:#gdb test -q(uiet)其中test为目标可执行文件,-q代表不打印那一大串版本版权信息之类的刷屏字幕。这里有个小常识就是用gcc编译目标文件test时,记得-g,表示可调试。另外,直接进入gdb而未加载可执行文件,或者加载了目标文件,想换一个其他的——可以使用(gdb)file test2或者(gdb)exec(-file) test22.断点的设立:(gdb)b(reakpoints) <rowNums...><rowNums...>代原创 2014-04-12 20:28:02 · 42364 阅读 · 2 评论 -
云盘秒传原理的探讨——哈希查找与数据去重
重要P个S:用云盘存片的童鞋注意了,别以为你辛辛苦苦找到个片存到云盘就走哪都能看了,根据“假秒传,真共享”原则,你秒传的文件是非常不保险的很容易被河蟹的,已经有童鞋表示寸到云盘的片子被河蟹了,看到莫段突然被删了你有脾气么?赶紧看下边的方法,存储属于你自己的,独特的,不被河蟹的片源。原创 2014-04-09 01:52:46 · 36891 阅读 · 4 评论 -
Live555生成Win下VS解决方案及项目工程
重新整理过程新建解决方案和四个库项目并生成库文件:首先新建个路径作为解决方案根目录,新建四个empty project空项目:BasicUsageEnvironment、groupsock、liveMedia、UsageEnvironment路径生成了。把live555对应的四个路径复制过来,合并,简单说就是源文件和头文件路径,不着急添加源文件到项目工程,添加也成,就是添加现成文件ad原创 2014-11-11 21:13:54 · 2545 阅读 · 0 评论 -
今日杂记
加速王他们能查同时登陆了,不知道是什么机制,以前怎么不管?》‘加速王我机子上现在,显示加速王连接成功,但是托盘图标是黑色的,不知道这个是怎么回事。logo提取错误?原创 2011-05-29 20:09:00 · 575 阅读 · 0 评论 -
初学Makefile——基本规则和习惯
面试被问到关于Makefile的问题,除了读u-boot和内核的Makefile等机会偶尔接触,根本就不熟悉,说读出个大概意思吧?很多细节不知道又不容易理解,没办法,还是从头动手练一下的好,这个行当,任何时候,不动手都是不行的。原创 2014-04-09 13:13:11 · 3587 阅读 · 0 评论 -
TreeFTL:Efficient RAM Management for High Performance of NAND Flash-based Storage Systems-论文注释笔记
不是翻译机器,所以不会去完全翻译,但除了废话基本等于完全翻译了。。。方便快速浏览和看懂,不保证完美,不过大概都理解,有需要可以讨论。因为是PDF上直接做的手脚,加上插图,没法发博客,所以选择整个pdf上传。是关于SLC NAND FLASH的。用到了三级树状结构映射,思想有点像内存和Cache。还有轻量级的LRU victim selection——能显著减少空间时间开销。本方法在特定情况下能大幅提升表现。翻译 2014-04-08 12:33:44 · 1791 阅读 · 0 评论 -
A survey of Flash Translation Layer——笔记注释
abstractRecently, flash memory is widely adopted in embedded applications as it has several strong points,including its non-volatility, fast access speed, shock resistance, and low power consumption. However,due to its hardware characteristics, specifical翻译 2014-04-07 22:11:24 · 2533 阅读 · 0 评论 -
Makefile赋值符号的使用——"=" ":=" "?=" "+="
"=" ":=" "?=" "+="这几个都是常用赋值运算符,那么他们有什么区别呢?原创 2014-04-06 17:38:07 · 13134 阅读 · 0 评论 -
在ubuntu弄java和c++平台
小雨,大早的回迁安。先下eclipse,java环境,安装方法存文档里,无外乎apt-get和网站上下,官网下的,东西太多,分不清哪个是哪个,解压什么的也有问题,今天直接apt-get了vim默认没有,自己安一个不就完事了,笨了。。。下了个geany,先照着小教程看C++,(当当的两大本书邮到了,有的头疼了。。。)都生疏了std::cout原创 2012-03-16 17:32:14 · 828 阅读 · 0 评论 -
Linux下C多线程编程初学
抄袭的第一个Linux下C多线程并发的程序,要用到pthread.h头文件~这还不算完,记得编译时要用-lpthread来链接libpthread.a原理很简单,利用sleep(1)隔一秒打印一次,两个线程分别打印"hello"和"world!\n"虽然写的睡一秒,但是这两个打印并不是均匀的交叉。里边用到很多现成的线程的接口,pthread_create还有pthread_join(),还原创 2012-05-01 23:40:36 · 5540 阅读 · 2 评论 -
操作系统信号量实例分析——过桥至少需要多少个信号量
一道操作系统信号量的经典问题,很久不接触,快要忘记了,想不通了,所以贴出来再回顾一下。有一座桥,南北向,都有入口出口。(图我不画了)1.假设该桥上每次只能有一辆车行驶,试用信号灯的P、V操作实现交通管理。2.假设该桥上不允许两车交会,但允许同方向多个车一次通过(即桥上可有多个同方向行驶的车)。试用信号灯的P、V操作实现桥上交通管理。参考答案:int coun原创 2011-10-04 12:41:01 · 18935 阅读 · 4 评论 -
嵌入式学习笔记--关于ARM中SWP指令的执行顺序问题【待验证】
做视频的人自己给SWP指令解读出了先后顺序,还给画了箭头和小标号——也就是先R2指向的内存中的内容先存到R0,再把R1中的数据存到R2指向的内存中。讽刺的是,这段文字包含了两个例子原创 2014-02-12 17:40:50 · 4710 阅读 · 0 评论 -
虚拟机中ubuntu下make menuconfig命令缺少ncurses解决方法
apt-get install libncurses5-dev原创 2014-02-23 01:59:58 · 7380 阅读 · 0 评论 -
CF卡技术详解——笔记
知识太全面了,摘抄摘不完,还是粘过来加上注释和笔记吧。重点以及断句用加粗,注释用红括号。很早以前转的,图片不知道怎么都丢了一.CF卡技术及规格一.CF卡技术及规格 1.CF卡简史 随着数码产品的高速普及,近年来闪存卡也进入了高速发展时期,得到了越来越广泛的应用,相机、手机、掌上电脑、随身听上处处都可能用到闪存卡。闪存卡有很多种...原创 2013-12-04 21:45:54 · 34553 阅读 · 0 评论 -
自定义自加自减下标解引用等问题--围绕CheckedPtr类 续14.26题
pe14_26_2.cpp//dui 26题的优化适当的const保护,还有操作符函数的定义顺序最好遵从声明顺序,看起来清晰一点#include"head.h"//版本二,优化加减法判断问题,我要把加负数的情况直接转化为调用减法,反之相反//调用相反操作符时传递参数要注意,传入(0 - change)有个转化class CheckedPtr{public: CheckedP原创 2012-04-27 16:39:05 · 1553 阅读 · 0 评论 -
自增自减操作符的前后缀,下标和解引用操作与自增自减一起使用,还有指针加减法的实现--围绕CheckedPtr类
原例,类//自增自减操作,前缀后缀,后缀调用前缀来实现,同!=调用==#include"head.h"//用来处理数组//后面习题14_23起,对类进行完善,找代码去后边class CheckedPtr{public: CheckedPtr(int* b, int* e): beg(b), end(e), curr(b) {}public: CheckedPtr&原创 2012-04-27 12:52:37 · 3185 阅读 · 0 评论 -
两层指针共用一个智能指针控制基本对象的操作--成员访问操作符
智能指针,让ScreenPtr指向ScrPtr,来控制基础对象ScreenPtr(Screen *p): ptr(new ScrPtr(p)) {}解引用和箭头操作 Screen operator*(){return *ptr->sp;} Screen* operator->(){return ptr->sp;}两个小缺陷,第一个是未定义const版本,第二个是返回的原创 2012-04-26 23:09:25 · 1491 阅读 · 0 评论 -
用三角形显示数字
根据行数列数不同,判断要输出多少行。。缺陷是,10以后,那个空隙不太爽,不过书上也那样,如果空隙改了,还得考虑行数的判断package Program13;import java.awt.Graphics;import javax.swing.JFrame;import javax.swing.JPanel;public class Program_13_5 extends JFrame{ public Program_13_5(){ add(new multiplicationTable()); } p原创 2011-02-19 14:51:00 · 1183 阅读 · 3 评论 -
纠结,让画两个OvalButton对象,另今天画了个棋盘
<br />说让画两个OvalButton,想add两个OvalButton不行,因为修改过paintComponent,每次调用就把前边画的清空了,只能调用一次啊,题上却说显示两个OvalButton对象,纠结了,难道还是从paintComponent入手?主要掌握方法太少了,现在主要就是书上给的一种方法,定义一个类,重写paintComponent方法,调用一下,画图。除了后边几个选修的没来得及看。<br />重点:前边有个FigurePanel类,也是让显示6个图形面板对象,出现了editor doe原创 2011-02-18 23:11:00 · 878 阅读 · 0 评论 -
求助:关于Graphics类---完全看不懂这个例子
最早一次成功了,就是在面板里画下“Banner",点击延时按钮以后画一条线。第二次就不成功了,百思不得其解,后来加了一个标红的句子,就又能实现了,不加就不行,这,有联系吗,奇了怪了,完全不懂。这光有一句frame.jlblBanner.getGraphics(); 怎么就能使后边的Graphics graphics = frame.jlblBanner.getGraphics(); graphics.drawLine(0,0,50,50);生效呢?怎么产生的联系?有这句没这句结果就不一样了。测试了别的句子原创 2011-02-17 16:37:00 · 1002 阅读 · 0 评论 -
关于implement
<br />没空看了,没空测了,先记下。。<br /> <br />implements Comparable{}集成Comparable接口的所有常量,并实现该接口的方法,是说implements的功能是这个吗?那么,加入有重名的方法和变量,留谁的呢?原创 2011-02-15 23:37:00 · 853 阅读 · 0 评论 -
布局管理器
<br />swing是轻型组件(lightweight component),AWT是重型组件(heavyweight component).<br /> <br /> <br />Frame类中的 setLocationRelativeTo()的用法JFrame类中的 setLocationRelativeTo()是从 java.awt.Window类继承的方法,其原型为:<br />public void setLocationRelativeTo(Component c);<br />用法为:<br原创 2011-02-12 18:10:00 · 837 阅读 · 0 评论 -
关于instanceof
转一个网上的提问:Integer n = new Integer(3); <br />boolean bo3 = n instanceof String; <br />System.out.println(bo3); <br />这样,我认为应该打印出false <br />但是编译的时候报错了: <br />Incompatible conditional operand types Integer and String <br />说Integ原创 2011-02-09 23:50:00 · 1897 阅读 · 0 评论