[C++] Constant Member Functions

Declaring a member function with the const keyword specifies that the functi
on is a “read-only” function that does not modify the object for which it is
called.To declare a constant member function, place the const keyword after the clo
sing parenthesis of the argument list. The const keyword is required in both
the declaration and the definition. A constant member function cannot modif
y any data members or call any member functions that aren’t constant.
就是类的成员函数如果声明const在最后则表示该函数不会修改该类的任何成员变量
Const的使用可以参见NewSmth的Cplusplus版精华区voidluner的[FAQ]const使用详解

仿真程序

1、滤波代码中G和q的含义:对于离散的机动模型,形式为xk+1=F3xk+G3wk,那么对应的G3即为程序中的G,而wk的方差则为qk,对于多个变量则q为数组Vec。程序中需要计算噪声项的协方差矩阵Q,即是通过GqG’来计算的,论中中的Q也是如此计算的。 对应的Bye++的程序中是Addative_predict_model,如果需要直接给出Q,则可以继承Unscented_predict_model.
2、Assertion failed occmgr line:410 问题主要是由于注册过的activeX控件被移动了位置,这也是某次改变上层目录名称造成程序出错的原因.
3、VisualServo初始估计错误原因:在于没有正确地初始化和重起后初始化位置信息
4、把程序移动到别的机器上,需要配置进行两个方面的配置。一是注册ntgraph.ocx,regsvr32 NTGraph.ocx,二是需要在Tool->Options->Project中重新配置boost的目录。在编译之前最好clean一下。

[Emacs] 汇总

1、 dired的使用:M-x dired 进入该模式,使用C-h f使用帮助。
几个快捷键: +增加目录 d增加删除记号 x执行 C复制文件 ^进入上层目录
2、outline-minor-mode的使用:
可以参见http://learn.tsinghua.edu.cn:8080/2001315450/emacs_outline.html, 说的比较详细,主要是首先在.emacs中设置方便的快捷键(setq outline-minor-mode-prefix [(control o)]),再设置在进入LaTeX-mode的使用自动启动outline-minor-mode:(add-hook ‘LaTeX-mode-hook ‘outline-minor-mode)
这样在打开一个*.tex文件后就可以使用outline-minor-mode了。几个主要的命令包括:
1、全局: C-o C-a 全部显示 C-o C-q 全部折叠 M-n C-o C-q 折叠到n级目录,根目录为一级;
2、局部:C-o C-d 当前子树被隐藏,C-o C-o 其他子树被隐藏
C-o C-i 显示当前子树的树干, C-o C-e 显示当前的Entry, C-o C-k 显示子树全部内容
C-o C-n (outline-next-visible-heading) 移动到下一个可见标题。
C-o C-p (outline-previous-visible-heading) 移动到上一个可见标题。
C-o C-f (outline-forward-same-level) 移动到下一个同级可见标题。
C-o C-b (outline-backward-same-level) 移动到上一个同级可见标题。
C-o C-u (outline-up-heading) 到上一级标题
3、基本编辑命令:
文件操作的几个方法:C-x C-f: open file C-x C-s: save buffer C-x C-c: quit emacs C-x C-b: list buffer; C-x 1: Delete all but one window; C-x u: undo
察看:C-v: Next page; C-b: back a latter; C-f: next latter; C-n: next line; C-p: back one line;
M-*…
帮助:C-h c: show command use; C-h f: C-h a …

[VC]图形工具条、进度条、 CVS、NTGraph等

1、使用Toolbar Creator创建需要的工具条(正常和失效)

2、使用http://www.codeproject.com/docking/TrueColorToolBar.asp中的两个文件加入

项目,使用CTrueColortoolBar替代MainFrame中的CToolBar并在OnCreate函数中增加m_wndToolBar.LoadTrueColorToolBar(48, IDB_NORMAL, IDB_NORMAL, IDB_DISABLED);其中第一个数字为一个按钮的宽度,后面分别是normaldisabled时候图片对应的resource ID

二、在状态栏上添加进度条:

使用CProcessBar,codeproject上可以找到。

三、MFC相关:

1、程序退出

直接关闭程序会给CMainFrame发送WM_CLOSE消息,调用CFrameWnd::OnClose进行关闭的处理,其他的ID_APP_EXIT,也是通过发送WM_CLOSE信息实现的,如果在在关闭前处理一些事务,则可以在CMainFrame中重载OnClose函数,此时如果要访问View,直接引入头文件会造成错误,可以在CMyView申明之前加上class CMyDoc;的申明即可。

2、处理系统菜单等:GetSysMenu()获得系统命令菜单进行处理,在precreatewindow中使用cs来设置风格。

四、CVS FOR VC

TamTam CVS: 没有破解,不注册没法用

PushOK Proxy CVS: 不注册可以正常使用30.

目前使用基于Windows窗口的TortoiseCVS,免费推荐!

五、MFC绘图控件NTGraph

参见http://www.codeproject.com/miscctrl/ntgraph_activex.asp

曾国藩家书一刚毅

至于刚毅之气,决不可无,然强毅与刚愎有别。古语云:自胜之谓强。曰强恕,强为善,皆自胜之义也。如不惯早起,而强之未明即起;不惯庄敬,而强之坐尸立斋;不惯劳苦,而强之与士卒同甘苦,强之勤劳不倦,是即强也。”,又云”男以懦弱无刚为大耻”
曰:要害啊…

[VC2003] warning C4267 & etc

warning C4267: ‘=’ : conversion from ‘size_t’ to ‘DWORD’, possible loss
of data 您将收到这个警告,因为所有默认 C++ 项目都使用 -Wp64 选项进行编译,该选项会通知编译器监视 64 位可移植性问题。
在项目属性中去掉-Wp64选项可以去掉许多无必要的warning。

gdb 调试程序

1、需要在编译时候增加 -g 选项
2、在emacs中使用 M-x gdb 开始调试,r: 开始运行;b main: 在main初设置端点;l: 打印当前附近的代码; up: 进入上一级函数;p: 打印变量;n: 下一步;s: 下一步(跳入函数);现就记住这些