Witam
mam taki problem znczy sie nie widze jak by to zrobic znaczy sie jak przeciązyc operator ++ aby w klasie string zamienial duze litey na male prosze o wszelka pomoc
przeciązenie operatora ++
-
- Użytkownik
- Posty: 92
- Rejestracja: 25 lut 2007, o 14:20
- Płeć: Mężczyzna
- Lokalizacja: wawa
- Podziękował: 2 razy
- Pomógł: 1 raz
-
- Użytkownik
- Posty: 311
- Rejestracja: 15 mar 2007, o 16:52
- Płeć: Mężczyzna
- Lokalizacja: Lublin
- Podziękował: 28 razy
- Pomógł: 54 razy
przeciązenie operatora ++
Ogólnie przeciążenie tego operatora wygląda tak:
lub tak:
Kod: Zaznacz cały
Klasa& operator++(); // preinkrementacja
Kod: Zaznacz cały
const Klasa operator++(int); // postinkrementacja
-
- Użytkownik
- Posty: 92
- Rejestracja: 25 lut 2007, o 14:20
- Płeć: Mężczyzna
- Lokalizacja: wawa
- Podziękował: 2 razy
- Pomógł: 1 raz
przeciązenie operatora ++
ok ale jak zamienaic te stringi(nie chodzi mi zeby ktos napisal gotowiec bo to nie w tym rzecz )
-
- Użytkownik
- Posty: 311
- Rejestracja: 15 mar 2007, o 16:52
- Płeć: Mężczyzna
- Lokalizacja: Lublin
- Podziękował: 28 razy
- Pomógł: 54 razy
przeciązenie operatora ++
Nie możesz przeciążyć operator++ bo w klasie string nie ma zdefiniowanego tego operatora, możesz napisać swoją klasę która rozszerzy klasę string o ten operator , a jak przeciążyć napisałem wyżej.mariusz198787 pisze:znaczy sie jak przeciązyc operator ++ aby w klasie string zamienial duze litey na male
Literę możesz zamienić z małej na dużą odejmując od niej 32
-
- Użytkownik
- Posty: 92
- Rejestracja: 25 lut 2007, o 14:20
- Płeć: Mężczyzna
- Lokalizacja: wawa
- Podziękował: 2 razy
- Pomógł: 1 raz
przeciązenie operatora ++
moje niedopatrzenie mialem na mysli własna klase stringa napisana przeze mnie
-
- Użytkownik
- Posty: 311
- Rejestracja: 15 mar 2007, o 16:52
- Płeć: Mężczyzna
- Lokalizacja: Lublin
- Podziękował: 28 razy
- Pomógł: 54 razy
przeciązenie operatora ++
Możesz to zrobić np. tak:
Wykorzystanie:
Kod pisany na biegu, więc przejrzyj dokładnie czy błędów nie ma.
Kod: Zaznacz cały
class MyString : public string
{
public:
MyString(std::string inValue = "");
const MyString& operator++();
string get() const;
private:
std::string mValue;
};
MyString::MyString(std::string inValue) : mValue(inValue)
{
}
const MyString& MyString::operator++()
{
for(std::string::iterator it = mValue.begin(); it != mValue.end(); ++it) {
(*it) -= 32;
}
return *this;
}
std::string MyString::get() const
{
return mValue;
}
std::ostream& operator<<(std::ostream& out, const MyString& inElem)
{
cout << inElem.get();
return out;
}
Kod: Zaznacz cały
MyString str = "aa";
++str;
cout << str << endl;