VC++中文件操作的问题

[复制链接]
2905|12
 楼主| skky2010 发表于 2010-4-29 13:33 | 显示全部楼层 |阅读模式
CFile 类为什么后面直接空格后写上一个函数,如CFile fileSource(SourceName, CFile::modeRead);后就可以直接写上函数fileSource.Read();不能理解,望哪位大侠给与指点,谢谢!
 楼主| skky2010 发表于 2010-4-29 14:18 | 显示全部楼层
我明白了是不是fileSource()是CFile类下具体的对象啊,望哪位大侠指点!谢谢!!!!
 楼主| skky2010 发表于 2010-4-29 14:29 | 显示全部楼层
只是我没见过用函数做的对象一般都是一个标示符,不知道是不是?
 楼主| skky2010 发表于 2010-4-30 08:34 | 显示全部楼层
没人回帖吗,发表一下意见啊
谢谢!!!!
 楼主| skky2010 发表于 2010-4-30 09:49 | 显示全部楼层
来个人让我结贴吧
AV693 发表于 2010-4-30 10:26 | 显示全部楼层
fileSource是CFile类下具体的对象
就是这样。
楼主没看C++的教程?
 楼主| skky2010 发表于 2010-4-30 10:37 | 显示全部楼层
看过,我刚刚起步所以不懂的较多
fileSource();不是函数是吧而是对析构函数的初始化,是这样的吧?
原野之狼 发表于 2010-4-30 11:07 | 显示全部楼层
LZ还是先补一下C++的基础吧

我来解释一下:
1 定义一个CFile对象
2 对象名为fileSource
3 调用构造对该对象进行初始化(运行时)
4 构造函数包含两个参数
  查看MSDN对于该构造函数的原型描述

-----------------来自MSDN------------------
CFile( LPCTSTR lpszFileName, UINT nOpenFlags );
throw( CFileException );
------------------END MSDN----------------------------

务必注意:
1 该构造函数在出错时会抛出异常,所以得捕获异常。
2 第一个参数没什么好说的了,就是一个文件名,数据类型是LPCTSTR
   第二个参数,是打开标志,查看CFile类的定义:

----------------------来自 CFile 类定义--------------
enum OpenFlags {
                modeRead =          0x0000,
                modeWrite =         0x0001,
                modeReadWrite =     0x0002,
                shareCompat =       0x0000,
                shareExclusive =    0x0010,
                shareDenyWrite =    0x0020,
                shareDenyRead =     0x0030,
                shareDenyNone =     0x0040,
                modeNoInherit =     0x0080,
                modeCreate =        0x1000,
                modeNoTruncate =    0x2000,
                typeText =          0x4000, // typeText and typeBinary are used in
                typeBinary =   (int)0x8000 // derived classes only
                };
------------------------------END-------------------------------------

采用枚举变量来作为构造函数的第二个参数,在访问时需要加上CFile:作用域。
 楼主| skky2010 发表于 2010-4-30 12:01 | 显示全部楼层
受教了,谢谢!!!
大道至简 发表于 2010-4-30 12:52 | 显示全部楼层
CFile fileSource(SourceName, CFile::modeRead);
这是要构建一个基于CFile的类,实体名字叫做fileSource,括弧里面的是构建的参数
大道至简 发表于 2010-4-30 12:53 | 显示全部楼层
fileSource.Read();

构建了实体之后当然就可以引用实体内部的函数了,引用的过程就是上面这一行
 楼主| skky2010 发表于 2010-5-1 15:03 | 显示全部楼层
谢谢,这个我现在知道了,非常感谢!!!!
大道至简 发表于 2010-5-4 14:24 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

145

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部