#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;
}