这段时间养病,看小说累了,就将家里唯二的实体书之一(另一本至今还看不懂)《c++核心思想》抱出来看了。看了几天,慢慢拾回了以前的一点点c++的东西,下了一个vs2005,试着写点小东西,结果发现编译时就出了问题。
首先是vs2005和vc6.0不一样,直接新建源文件,此时是没有编译选项的,必须建立项目后,添加源文件才有编译的菜单出来。及其b4一把!另外,建立项目时,最好选择空,不然缺省会给你选上“预编译头” ,此时源文件都会自动给你加上什么"stdafx.h",main函数都变为了int _tmain(int argc, _TCHAR* argv[]),看着十分的不爽!
按着上面说的建立一个空的项目后,此时发现如果include <iostream.h>后,可以直接编译通过,但是如果使用c++的特性,include <iostream>,此时必须继续使用using namespace std;才能编译通过。当时只是注意到这个现象,原因不解。
继续看了一些书,在c++ primer看到解释了:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
——update于2007-06-17 星期日13:54:24.93
cin和getline在一起使用时,注意cin在前面是,需要在使用getline之前,使用如下代码:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
因为要防止cin读取数据后,剩余的“换行符”。使用上面的语句将换行符吃掉。否则,下一句getline就只能得到换行了。
——update于2007-06-17 星期日15:21:50.14
如果一个变量是在 全局域 定义的,那么系统会保证提控初始值0;如果是在 局部域 被定义的,则不会提供初始值,随机。
——update于2007-06-20 星期三22:16:24.56
指针都会关联一个类型,不同类型的指针的区别不是在指针的表示上,也不是指针所持有的值上(所有类型的指针,这两点都是相同的)。不同之处在于指针所指的对象的类型上,指针的类型是告诉编译器怎样解释特定地址上的内存的内容的,以及该内存区域应该跨越多少内存单元!
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
——update于2007-06-20 星期三23:02:52.39
静态成员函数和静态成员变量属于类本身,在类加载的时候,即为他们分配了空间,所以可以通过类名::函数名或类名:变量名来访问。对于非静态成员函数和变量属于对象的方法和数据!
当然,上面的规则,也说明静态成员函数只能调用静态成员变量,而一般成员函数却随时可以调用静态成员函数,另外,需要注意的是,如果main程序有访问静态成员变量,那么这些变量必须初始化,否则会有报错!
——update于2007-07-02 星期一23:10:47.92
在Unicode下,将CString 转换为 int的函数:_ttoi()。
不过目前还不知道如何将CString 转换为 char *,看了baidu说是强制转换为(LPCTSTR)即可,可惜我的vs2005说是不能如此转换。 不过暂时无所谓了,因为我开始想如此转换的原因就是不知道上面的_ttoi(),一直想着使用atoi(),结果郁闷了很久!
——update于2007-07-08 星期日23:12:56.12
在vs2005中,对话框类的WM_INITDIALOG消息哪里去了?
百度告诉我,从vs2003开始,WM_INITDIALOG就被移到了重写里面,可以到重写中找OnInitDialog,重写即可!
——update于2007-07-09 星期一23:22:33.56
传递一个对象的地址:
希望一个类能够获得自定义的4个对象的地址,以便这4个对象之间互相访问。
按照sunxin的教程,创建4个指向类对象的指针,直接在其他类的成员函数中,给这几个指针赋值。明显这种做法是把这几个指针声明为public类型。
可是作为数据成员,也许我是受到《ccc》一书的影响,实在不喜欢将数据成员声明为public,于是便按照自己的想法,声明为private,并创建了其成员函数,使其能够返回类对象的指针:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
上面的做法明显存在问题,因为函数每次返回都是同一个对象的指针,而得不到其他3个类对象的地址。
修改如下:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
这里就可以使得一个对象,通过调用这4个成员函数,取得4个不同对象的地址。
但有一点一定要注意,这里参数类型要为:引用。否则的话,后果就是编译不过,因为这里你要传递的是地址!
至于编译错误的原因,我还没有想通,先放在这里记录一下吧:
“void CMyButton::GetPtMyBtn1(CMyButton)”: “CMyButton”中没有找到重载的成员函数”
——update于2007-07-12 星期四0:56:29.07
。