CCCPaste

Untitled

#include 
#include 
using namespace std;
ofstream fout;
class Person {
private:
    char name[55];
    char number[55];
    char address[105];
public:
    Person() {}
    Person(char *_name, char *_number, char *_address) {
        strcpy(name, _name);
        strcpy(number, _number);
        strcpy(address, _address);
    }
    Person(const Person &obj) {
        strcpy(name, obj.name);
        strcpy(number, obj.number);
        strcpy(address, obj.address);
    }
    ~Person() {}
    const char* get_name() {
        return name;
    }
    const char* get_number() {
        return number;
    }
    const char* get_address() {
        return address;
    }
    void set_name(char *s) {
        strcpy(name, s);
    }
    void set_number(char *s) {
        strcpy(number, s);
    }
    void set_address(char *s) {
        strcpy(address, s);
    }
    friend ostream& operator << (ostream &stream, Person &p);
    
};
ostream& operator << (ostream &stream, Person &p) {
    stream << p.name << " " << p.address << " " << p.number << endl;
    return stream;
}
class InheritedPerson : public Person {
private:
    char *adr[105];
public:
    InheritedPerson() {}
    InheritedPerson(char *_name, char *_number, char *_address) : Person(_name, _number, _address) {
        adr[0] = _address;
    }
    ~InheritedPerson() {
        
    }
    
};
void print_same_address(Person p[], int n, char *adr) {
    for(int i = 0; i < n; i++) {
        if(strcmp(adr, p[i].get_address()) == 0) {
            fout << p[i];
        }
    }
}
void print_same_number(Person p[], int n, char *num)  {
    for(int i = 0; i < n; i++) {
        if(strcmp(num, p[i].get_number()) == 0) {
            fout << p[i];
        }
    }
}
int main(){
    fout.open("file.txt", ios::out);
    Person p1("john", "123", "houston");
    Person p2("jack", "234", "houston");
    Person p3("jerry", "123", "texas");
    Person p[] = {p1, p2, p3};
    print_same_number(p, 3, "123");
    print_same_address(p, 3, "houston");
    
    return 0;
}