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 吧.
[解决办法]
有动态分配内存的类,请重载所有的构造函数,拷贝构造函数,析构函数和赋值运算符