Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строки - Перегрузка оператора << [C++] 
:(
    Опции темы
ArniLand
Дата 14.6.2010, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 17.8.2008

Репутация: нет
Всего: нет



Программа не выводит значение длинны строки при выполнение. Подскажите пожалуйста что нужно исправить, если можно исправьте сразу в коде. Просьба указатель на char не трогать, потому что так требует преподаватель писать. Заранее спасибо.
Код

//Row.h
#include <iostream>
using namespace std;
class Row
{
protected:
    char *Str;
public:
    Row(char* pS);
    ~Row();
    int LengthStr();
    friend ostream &operator<<(ostream &stream,  Row &pL);
};

class Row2 : public Row
{
public:
    Row2(char* pS) : Row(pS) {};
    ~Row2();
    char Change();
};

//.cpp
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include "Row.h"

using namespace std;

Row::Row(char *pS)
{
    Str = pS;
}

int Row::LengthStr()
{
    int Length;
    Length = strlen(Str);
    return Length;
}

char Row2::Change()
{
    for (int i = 0; i < strlen(Str); i++)
    {
        if (Str[i] == '?')
        {
            Str[i] = '**';
        }
    }
    cout << "Posle zameni - " << Str << "\n"; 
    return 0;
}

//main.cpp
#include "stdafx.h"
#include <iostream>
#include "Row.h"

using namespace std;

ostream &operator<<(ostream &stream, Row &pL)
{
    stream <<"Dlinna :" << pL.LengthStr() << "\n";
    return stream;
}
int main()
{
    char pL[100] = ("Ly?cia???");
    Row2 *pS = new Row2(pL);
    pS->Change();
    return 0;
}





Это сообщение отредактировал(а) ArniLand - 14.6.2010, 14:30
PM MAIL   Вверх
azesmcar
Дата 14.6.2010, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



ArniLand

Не совсем понял, а почему собственно должен выводить? Где предполагается вывод длины строки?
PM   Вверх
xvr
Дата 16.6.2010, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Написать ostream &operator<<(ostream &stream, Row &pL) мало, его еще нужно где то позвать  smile 
PM MAIL   Вверх
andDavid
Дата 19.6.2010, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 12.2.2010

Репутация: нет
Всего: нет



ВОТ :

Код

#include <iostream>
using namespace std;

class Row
{
protected:
    char *Str;
public:
    Row(char* pS);
    ~Row();
    int LengthStr();
    friend ostream &operator<<(ostream &stream,  Row &pL);
};

class Row2 : public Row
{
public:
    Row2(char* pS) : Row(pS) {};
    ~Row2();
    char Change();
};



Row::Row(char *pS)
{
    Str = pS;
}

int Row::LengthStr()
{
    int Length;
    Length = strlen(Str);
    return Length;
}

char Row2::Change()
{
    for (unsigned int i = 0; i < strlen(Str); i++)
    {
        if (Str[i] == '?')
        {
            Str[i] = '*';
        }
    }
    cout << "Posle zameni - " << Str << "\n"; 
    return 0;
}

ostream &operator<<(ostream &stream, Row &pL)
{
    stream <<"Dlinna :" << pL.LengthStr() << "\n";
    return stream;
}
int main()
{
    char pL[100] = ("Ly?cia???");
    Row2 *pS = new Row2(pL);
    pS->Change();
    cout << *pS << endl;
    
    return 0;

}


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.