读书人

C++ 类构造对象的有关问题

发布时间: 2013-02-24 17:58:56 作者: rapoo

C++ 类构造对象的问题
类的定义是这样的:

class FileOperation
{
public:
/*写文件时调用此函数构造对象*/
FileOperation(string cli);
/*读文件时调用此函数构造对象*/
FileOperation(string cli,string FileName);

~FileOperation();
intFileWrite(struct RtpPack rtp);
int FileRead(struct RtpPack &rtp);
void Test() {cout<<FileName<<"\t"<<FileDir<<"\t"<<client<<"\t"<<StartHour<<"\t"<<StartMin<<"\t"<<StartSec<<endl;}
protected:

int GetFileDir();
int GetFileName();
int GetFileFp();
string CreateFileDir();
void UpdateWriteFile();
unsigned long GetFileSize();
bool IsOvertime();
bool IsFileMax();

private:
string FileName;
string FileDir;
string client;
FILE *fp;

int StartHour;
int StartMin;
int StartSec;

static map<string,string> ClientDirMap; //所有设备相应目录列表



问题:
FileOperation FileObj = FileOperation("111");
FileObj.FileWrite(rtp);
这种方式为何不能把rtp结构体写入文件
/*FileOperation *FileObj = new FileOperation("111");
FileObj->FileWrite(rtp);*/
这种方式可以正确的吧rtp结构体写入文件
本人猜测是不用new的时候 FILE *fp 没有分配内存 所有写入失败,这样的话我该怎么做呢!
[解决办法]
换成这样试一下呢.

FileOperation FileObj("111");
FileObj.FileWrite(rtp);

ps. 都用 c++ 了,就用 std::ofstream 吧.
[解决办法]
有动态分配内存的类,请重载所有的构造函数,拷贝构造函数,析构函数和赋值运算符

读书人网 >C++

热点推荐