|
ex7-6.cpp - Example 7-6 Private inheritance |
// Example 7-6 - private inheritance
#include <iostream>
#include <string>
using namespace std;
class name : private string
{
public:
name(const char *);
void print() const;
string first_last() const;
string initials() const;
void change_last(const string& new_last);
};
name::name(const char* n) : string(n) {}
void name::print() const {
cout << c_str() << ".\n";
}
string name::first_last() const {
size_t comma_pos = find(',');
size_t second_space = find_last_of(' ');
return substr(comma_pos+2,second_space-comma_pos-2) + ' ' + substr(0,comma_pos);
}
string name::initials() const {
string inits;
inits = data()[find(',')+2];
return inits + data()[length()-1] + *data();
}
void name::change_last(const string& new_last) {
replace(0,find(','),new_last);
}
int main() {
name joe("Bentley, Joseph E");
joe.print();
cout << joe.first_last() << endl;
cout << joe.initials() << endl;
joe.change_last("Smith");
joe.print();
return 0;
}
CIS27: Programming in C++ Instructor: Joe Bentley