#include<iostream>
#include<cstring>
#define MAX_STRING 100
using namespace std;
class myString
{
friend istream& operator >> (istream&, myString&);
friend ostream& operator << (ostream&, myString&);
private:
char content[MAX_STRING];
public:
char operator [] (int);
myString operator += (myString);
};
istream &operator >> (istream &in, myString &temps)
{
in >> temps.content;
return in;
}
ostream &operator << (ostream &out, myString &temps)
{
out << temps.content;
return out;
}
char myString::operator [] (int n)
{
return content[n];
}
myString myString::operator += (myString s)
{
strcat_s(content, s.content);
return *this;
}
int main()
{
myString s1,s2;
cin >> s1 >> s2;
cout << s1[0]<<endl;
cout << (s1 += s2) << endl;
system("pause");
return 0;
}

Hubert's Coding Notes
Useful notes for CS people