Я пытаюсь скопировать содержимое одного файла в другой путем перегрузки оператора «=». Я хочу сделать что-то вроде, когда пишу, file2 = file1, содержимое файла1 будет записано в файл2. Но мой код этого не делает. Это то, что я сделал до сих пор.Ошибка копирования содержимого файла в другой с помощью перегрузки оператора
class EasyFile{
std::string fileContent;
char* filePath;
public:
EasyFile(char* filePath){
this->filePath = filePath;
std::fstream file(filePath);
getline(file,fileContent);
}
char* getFilePath(){
return filePath;
}
std::string getFileContent(){
return fileContent;
}
void setContent(std::string content,char* filePath){
std::ofstream file(filePath);
file<<content;
}
void operator=(EasyFile f);
};
void EasyFile::operator=(EasyFile f){
this->setContent(f.getFileContent(),f.getFilePath());
}
int main(int argc,char** argv)
{
EasyFile efile1(argv[1]);
EasyFile efile2(argv[2]);
efile2 = efile1;
std::string output="";
std::ifstream file(argv[2]);
std::getline(file,output);
std::cout<<output;
return 0;
}
Почему 'main()' ничего не возвращает? Кроме того, перегрузки операторов присваивания должны возвращать ссылку на объект, получающий назначение. – owacoder
@owacoder Нет необходимости указывать 'main()' return, по умолчанию используется 'exit (0);'. –
Это правда, но это хорошая практика, чтобы «возвращать» значения из функций, которые определены для возврата значения! – owacoder