本人系大一电子系学生,学习c++时对面向对象思想还没有很深了解。最近做一道书上的作业题时,初步体会到了面向对象的程序设计思路,并且在程序设计过程中遇到了,也解决了很多问题,在此把问题与体会作为本人的第一篇博客分享出来,望得到更多的指教与建议,也希望提供给和我一样的同学一些思路,共同进步,共同提高。
题目要求为定义学生数组类,数组对象动态建立,初始为3个元素,不够使扩充一倍,要求放在构造函数中用二进制数据文件建立数组元素对象,在析构函数中保存数据和关闭文件。
程序代码如下:
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <cassert>
#include <conio.h>
using namespace std;
class Student
{
private:
string m_name;
int m_age;
double m_mark;
string m_address;
string m_number;
public:
Student(string name = "#", int age = 0, double mark = 100, string add = "#", string number = "#");
Student(Student &std)
{
m_name = std.m_name;
m_age = std.m_age;
m_mark = std.m_mark;
m_address = std.m_address;
m_number = std.m_number;
}
void FileWrite(ofstream &file) ;
void FileRead(ifstream &file) ;
friend ostream &operator<<(ostream &dist, Student &std);
friend istream &operator >> (istream &sour, Student &std);
bool operator>(Student &std);
bool operator==(Student &std);
};
Student::Student(string name , int age , double mark , string add , string number)
{
m_name = name;
m_age = age;
m_mark = mark;
m_address = add;
m_number = number;
}
bool Student::operator>(Student &std)
{
return m_mark &