
C/C++专题
zhjinfeng
---
展开
-
Windows窗口程序中的printf处理
Windows编程一般都使用窗口程序设计,即GUI模式。但有时我们需要输出一些信息用于调试或查看某些状态。一、在窗口上加一个Edit控件,然后把需要的信息输出到Edit控件里,但这样严重影响了应用程序的美观。二、我们可以在应用程序里自己开一个控制台(就像DOS窗口一样),然后重定向输入输出,就可以用printf函数向控制台输出信息了,具体方法如下。 AllocConsole();原创 2008-07-30 10:45:00 · 3262 阅读 · 0 评论 -
C++经典书籍
四库全书:The C++ Programming Language, C++Primer深奥:The Annotated C++ Reference Manual, Inside the C++ Object Model细说:The Design and Evolution of C++, Ruminations on C++独沽一位:Polymorphism in C++, Gene原创 2008-10-07 13:53:00 · 650 阅读 · 0 评论 -
父类转换为子类的成员问题
有如下程序: class A{ int a; } class B:public A{ int b1; int b2; } main(){A ca;B* cb=(B*)&ca; //or =static_casta;ca.a=1;cb->b1=2;cb->b2=3;} 居然也能运行,经过调试发现,b1和b2是从栈底向下依次增加,而原创 2008-11-02 10:53:00 · 1000 阅读 · 0 评论 -
&((struct*)0)->a与成员指针
有一个结构体:如struct A{ char c; int a; long i;}; 问&((struct*)0)->a是什么意思,什么情况下用: 开始还以为要访问到地址0x00000000呢,原来&和->运算顺序是右结合的,经过研究发现它返回的是结构体中成员a的相对偏移地址! 原来C++中也有相似的操作符,不过一般人不经常用,我也原创 2008-11-17 14:50:00 · 3545 阅读 · 0 评论 -
重载(overload)与覆盖(override)的区别
C++中有几个关键词,原来自己一直都在错用override(覆盖或叫改写、重写)用于子类对父类的同名函数尤其是虚函数的重写,实现多态overload(重载)函数名相同,参数不同即叫重载,返回值可同也可不同(最早以前必须相同),而且不一定要在类中,在一个作用域中的函数都可重载。还有一些如overwrite,overlapped都是针对值而言的原创 2008-11-15 19:35:00 · 800 阅读 · 0 评论 -
数组名与指针的区别
C和C++中, 通常认为,数组名也可以当指针使用,可以和指针一样操作。但是数组和指针又不完全一样。只有搞清楚了它两在内存中是怎么存放的才能更好地理解它们的区别。例如:有如下定义 int vi[]={1,2,3,4,5};int * pi;char va[]="abcde"; //相当于char va[]={a,b,c,d,e};char *pa="abc原创 2008-11-21 09:06:00 · 589 阅读 · 0 评论 -
在VC中设置条件断点
什么东西都是只有用到了才能够知道,今天调一个程序,需要看到某变量在什么地方变化了,由于代码太多,不能一一加断点调试。原来vc6.0就有条件断点的设置呢,应该以后的版本也有的,在菜单edit->breakpoint...里,或直接Alt+F9,就会弹出对话框,可以看到所有设置的断点,有三种条件断点可设,一是位置:某文件的某行;二是变量:直接输入某个变量,当它改变时就会暂停;或直接输入表达原创 2008-11-24 17:25:00 · 1413 阅读 · 0 评论 -
在Windows下使用Eclipse + CDT+MinGW开发C/C++程序
A. 下载相关的组件,我都是用下载文件后拷到相应的安装目录下的方法,这样既简单又直观。 a、 下载JRE(Java Runtime Environment) 。(http://java.sun.com/javase/downloads/index.jsp) b、 下载Eclipse SDK。(http://www.eclipse.org/downloads/) c、 下载CDT。原创 2008-12-13 19:46:00 · 872 阅读 · 0 评论