C++类的静态函数是属于类型的,而不是某个对象的,因此把它声明成Virtual也没什么实际意义。那么运行下面这段程序,会产生什么样的结果呢?
1 2 3 4 5 6 7 8 | #include <iostream> using namespace std; class Base { public: static void foo() { cout<<"Base"<<endl; } virtual void bar() { foo(); } }; |
C++类的静态函数是属于类型的,而不是某个对象的,因此把它声明成Virtual也没什么实际意义。那么运行下面这段程序,会产生什么样的结果呢?
1 2 3 4 5 6 7 8 | #include <iostream> using namespace std; class Base { public: static void foo() { cout<<"Base"<<endl; } virtual void bar() { foo(); } }; |
大家看到这里每个页面顶部的命令技巧了吗?这是一些随机显示的Linux命令,有很大一部分是基于Debian的,还有一些是Ubuntu所特有的。这些Skills最初来源于Ubuntu中文论坛,我把它重新整理了一下下,删减了一些系统维护类的技巧,保留的主要偏于应用技巧类的。随着以后我对Linux的使用,我会不断的添加。
同时,我还制作了一个PDF,只有两页,算作是又一个Linux Commands Cheat Sheet吧!有兴趣的点击此处下载,打印了,贴墙上!为方便某些同志的修改,奉上它的
源文件。
P.S. 我怎么在RSS中调用JS?
在家里闲着实在憋屈。想接触下Python,用我弱弱的手机找了个《Python简明教程》大致地过了一遍。找了家网吧想下个Python安装程序练练手,结果发现Python.org居然被墙了!幸好前几天殷殷给了一个翻墙用的包GAppProxy,马上就派上用场了。翻将过去,就看到那两条亲密无间的“蛇”了。
F**K!难道G*F*W连个编程语言都不放过?Python是个不和谐的语言?可能吧,上面的翻墙工具就是Python吐出来的。Python另一个被墙的理由就是Python.com了,这是一个不河蟹的网站,简直就是十分不和谐……
附上GAppProxy.rar。加压后运行gui.exe,设置代理服务器为127.0.0.1:8000(端口可以自己设定)。
三年自然灾害时期,中国遭遇大灾,对外宣传却是“形势一片大好”。某国元首来中国访问,当然是会见最高首长,再去工厂、部队、农村等地访问一番。外交无小事,某省接到通知,各级政府做好充分准备,乡里大食堂的案板上,堆满作秀需要的菜码儿。重要人物总是在路上,元首一行不仅迟迟不到,而且传话说,要改道而行。新鲜的猪肉,经不起一拖再拖 ,处在变质的边缘。领导拍板,立即将大肉加上大料卤透,然手让农民们坐上拖拉机,快“机”加鞭,到元首要经过的公路边食用以此制造一种农民兄弟们过上“顿顿能吃肉,家家有余粮”的假象。于是,近百个精挑细选、根正苗红的农民兄弟,手持招待外宾用的青花细瓷碗,蹲在路边,看到元首车队离路边仅数十米之遥时,一基层领导大喝一声“吃”,近百号大汉“呼哧呼哧”,连肉带面,吃了一个底儿朝天。事后,农民兄弟们的家小,对外国元首和领导同志们甚是感激,这场戏的布置,让村里的老老小小都吃到了久违的猪肉。原因是,农民兄弟们为了让家小尝尝猪肉,边吃边把肉往口袋或衣袖里藏。
长安街,似乎还“没几个人”知道,Google和Baidu也知不道。
想一下,下面的代码片段会输出什么?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <iostream> class Test { public: void print() const { std::cout<<_int<<std::endl; } private: static int _int; }; int Test::_int = 0; int main(int argc, char **argv) { Test TArray[10]; TArray[100].print(); return 0; } |
May you note something, anyhow.
这是一个类似gnome-terminal的“终端模拟器”,相比gnome-terminal,具有更快的启动速度,更少的资源占用,更强的可定制性。你可以从其官方网站下载源码编译安装,亦可以从你的发行版的源中直接安装。Debian中,可以执行以下命令
1 | sudo apt-get install rxvt rxvt-unicode #rxvt-unicode是为了支持中文 |
这样,RXVT就安装好了,默认的界面可能让人很不舒服,就需要一些简单的定制。在用户目录下建立.Xresources文件,然后写入下列配置行:
安装方法和其他插件一样,将NERDTree.vim文件放到.vim/puglin/下即可。用:NERDTree命令启动,建议映射成快捷键。该插件常用操作的一些命令如下:
另外一个插件是Calendar,顾名思义,是用来显示一个“日历”,但它的功能不限于此,还可以提供类似日记的功能。喜欢的话,你可以用它来记录一些笔记、备忘什么的。安装即使用方法同其他插件类似,自己摸索吧!截图改天再上。
1 2 3 4 5 6 7 8 9 10 11 12 13 | void fun1(char * str) {} void fun2(char ** str) {} //~ int main(int argc, char ** argv) int main(int argc, char * argv[]) { char str1[] = "Hello, Piggy!"; char str2[][4] = "Hello, Piggy!"; fun1(str1); fun2(str2); fun2(&str1); return 0; } |
上面的snippet有错误吗?有几个?你能找出来并说出原因吗?4、5两行有区别吗?想一下,然后看gcc给出的错误信息,
本程序利用PIC18单片机实现了对EEPROM的读写。应用背景是”汽车里程表”,简单介绍下程序功能和流程。
单片机接受来自RA4管脚的计数脉冲信号,应用中这个脉冲信号通常由一个传感器来产生,计数脉冲被设定为上升沿触发。计数器溢出时,需要更新一个用于存储当前里程的RAM寄存器单元COUNT,可以理解为车轮转了一定圈数后,里程表的增加一定的里程数。
RB0管脚用来接收一个外部中断信号,接收到中断信号后,在中断服务程序中将COUNT的值即当前里程数保存至EEPROM的00H单元。这样可以配合外部电路实现当单片机掉电时自动保存里程表数值的功能,即汽车熄火时保存里程表,以减少对EEPROM的读写次数。
单片机启动时,首先应该到EEPROM的相应单元读取里程表的当前值,并在此基础上进行累加。
程序中为了调试方便,还将COUNT的数值同步地通过8个LED以二进制形式较直观地显示了出来。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | LOOP BCF INTCON, T0IF ; 清TMR0中断标志 MOVLW TMR0B MOVWF TMR0L ; 装入计数初值 253 BSF T0CON, TMR0ON ; 启动计数器 TEST BTFSS INTCON, T0IF ; 检测TMR0是否溢出 GOTO TEST INCF COUNT, F ; 计数加一 MOVFF COUNT, PORTD ; 输出,显示 GOTO LOOP WIRT_EE ; 写EEPROM BCF EECON1, EEPGD BCF EECON1, CFGS ; 设定EECON1控制寄存器 BSF EECON1, WREN ; EEPROM写使能 BCF INTCON, GIE ; 写EEPROM时需要关闭一切中断 |