菜鸟读VC
2009-03-01
先说优点,这本书让大部分的入门级菜鸟了解了VC,至少见识了VC都能做点什么东东,比如界面,绘图,菜单栏,状态拦,动画在窗口的显示,网络socket编程,多进程线程编程,而且随书光盘有配套的讲解,读书的速度跟着光盘也能加快很多,我算是比较吃力的,大概每章花5个小时,10天才能读完一本
缺点就是不细致,最基本的概念常常一句话写过,举个例子,CPoint第一次出现是在这样的情况下,CPoint pt = 0,作者说给pt赋值为0,如果顺着作者的思路,很容易有错误的概念,一个对象可以用0或其他数值来赋值,而且前面讲C++的部分也没提到过这样的情况,其实这些都是最基本的C++知识,只是作者认为这个无关紧要
此书的C++部分实在另人不敢信服,也难为作者了,一本讲VC的书,还要提前拿出一章来讲庞大的C++,C++怎可一章几十页就说完,那是C++ premier做的事情呀,建议大家还是先把C++看好,再来看这书,在理解上一定会比一知半解C++就来学VC的要好,否则一不小心就跟着作者的意思不问青红只管调用函数了
至于<深入浅出MFC>,我也正在读,写得确实细致很多,比如VTABLE部分就比<VC++深入详解>要多花不少篇幅
关于作者说的CPoint pt = 0其实是这样,写个CPoint类就大体明白他说的赋值了
class CPoint
{
public:
CPoint(){}
CPoint(int n);
void display()
{
cout << x << endl << y << endl;
}
private:
int x;
int y;
};
CPoint::CPoint(int n)
{
this->x = n;
this->y = n;
}
int main()
{
CPoint pt; //1
pt = 0; //2
pt.display();
return 0;
}
在1和2的地方进入了两次构造函数,=应该是拷贝构造
也可以理解为pt = 0; 默认把0强制转换成CPoint类型,并调用默认的拷贝构造函数重新构造pt,
相当于
CPoint tmp(0);
pt = tmp;
或
pt = CPoint(0);
或
pt = (CPoint)0;