Форум программистов, компьютерный форум CyberForum.ru

В классе string перегрузить операцию вчитания - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переход с VS на NetBeans 7 и GCC http://www.cyberforum.ru/cpp-beginners/thread840459.html
Доброе время суток, Решил поднять сервер с компилятором GCC 4.7 для одинаковой компиляции на всех платформах В качестве IDE взял NetBeans 7 из за присутствия на всех платформах и возможности по SSH подключатся к серваку с компилятором И все работает нормально, но есть одно но, в VS я создавал проект из файлов: main.cpp - основной файл #include "main.h" int main()
C++ Решение уравнения методом хорд с применением рекурсии Ошибка Написать программу, использующую рекурсивную функцию rооt(f, а, b, ерs), которая методом хорд находит с точностью ерs корень уравнения f(x) = 0 на отрезке . Считать, что ерs > 0, а < b, и f(x) – непрерывная и монотонная функция на отрезке . Ошибки: 1. Выдаёт что корень есть на том участке, на котором его нет. 2. Нужна рекурсия. Помогите пожалуйста :) Вот код (С++): #include <stdio.h>... http://www.cyberforum.ru/cpp-beginners/thread840452.html
C++ Залинковать стороннюю библиотеку
Здравствуйте! Помогите пожалуйста правильно залинковать библиотеку FFmpeg Что я сделал: 1) скачал билд под Windows 2) положил dll файлы в каталог проекта 3) положил include в папку VC/include
C++ Написать программу печатающую цифры из заданного интервала
Прошу, помогите, пожалуйста. Очень нужно написать программку, а совсем не понимаю как. Написать программу, печатающую цифры из заданного интервала. Использовать цикл while. В строку выводится цифра, в десятичной и восьмеричной системе. в с++ Очень прошу помогите Спасибо в с++ Если необходимо в C++, то и создавайте тему в разделе C++, а не где попало.
C++ Сформировать n чисел Фибоначчи (a1=1, a2=1,ai=ai-1+ai-2) http://www.cyberforum.ru/cpp-beginners/thread840430.html
помогите пожалуйста
C++ Структуры (ошибка: invalid use of incomplete type «struct USER») Добрый день. У мну есть такая проблема. есть две структуры которые определены в main.cpp есть их прототипы которые объявлены в main.h есть код который использует структуры который находится в socket.cpp в обоих .cpp файлах подключен заголовочный файл main.h возникает следующее socket.cpp:69:13: ошибка: invalid use of incomplete type «struct USER» In file included from socket.cpp:3:0: подробнее

Показать сообщение отдельно
LiV
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 54
17.04.2013, 13:43     В классе string перегрузить операцию вчитания
Здравствуйте! Помогите, кто сможет.
Задание: есть строка например, String s1("123"); и строка String s2("здравствуйте");
написав: s1=s2-5; cout<<s1<<endl; нужно вывести на экран последние пять символов: "вуйте".
Моя проблема в том, что на экран выводятся первые пять символов, а дальше мусор: "здравээээээ...".
Вот весь мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#ifndef _STRING_H_
#define _STRING_H_
 
#include<iostream>
#include<Windows.h>
#include<time.h>
using namespace std;
 
class String
{
    char *s;// произвольное колличество символов в строке
    int len;// длина строки
public:
    String()
    {
        s=NULL;
        len=0;
    }
    String(char *s)// создание строки
    {
        int l=strlen(s);// длина строки
        this->s=new char [l+1];//выделение динамич памяти для строки
        strcpy(this->s, s);//запись в строку
        this->len=l;//длина полученой строки
    }
    char* GetS()
    {
        return this->s;
    }
    int GetLen()
    {
        return this->len;
    }
    String& operator-(int B)//перегрузка операции -
    {
        if(B>this->len || B>0)
        {
            char* tmp=new char[B];// выделение строки
            strncpy(tmp, this->s, B);// копирование из строки s, B символов в строку tmp
            String str1(tmp);//создание строки
            str1.len=strlen(tmp);//длина строки
            delete[]tmp;//удаление строки tmp - предотвращение утечки памяти
            return str1;
        }
    }
};
ostream& operator<<(ostream &os, String &st)
{
    os<<st.GetS();
    return os;
}
 
 
#endif
За тем в main я пишу:
C++
1
2
3
4
5
6
    
String s1("123");
String s2("здравствуйте");
 
s1=s2-5;
cout<<s1<<endl;
Что то не правильно в методе перегрузки операции -, так и не смог решить.
За ранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru