// string1.h - opravená a rozšířená definice třídy string
#include <iostream>
using std::ostream;
using std::istream;

#ifndef STRING1_H_
#define STRING1_H_
class String
{
private:
	char * str; 						// ukazatel na řetězec
	int len; 								// délka řetězce
	static int num_strings; 	// počet objektů
	static const int CINLIM = 80; // vstupní limit cin 
public:
// konstruktory a další metody
	String(const char * s); // 
	String(); // implicitní konstruktor
	String(const String &); // kopíruj konstruktor
	~String(); // destruktor
	int length () const { return len; }
// metody přetíženého operátoru
	String & operator=(const String &);
	String & operator=(const char *);
	char & operator[](int i);
	const char & operator[](int i) const;
// přátelé přetíženého operátoru
	friend bool operator<(const String &st, const String &st2);
	friend bool operator>(const String &st1, const String &st2);
	friend bool operator==(const String &st, const String &st2);
	friend ostream & operator<<(ostream & os, const String & st);
	friend istream & operator>>(istream & is, String & st);
// statická funkce
	static int HowMany();
};
#endif
