С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 63

class String, error lnk

27.08.2013, 11:03. Показов 768. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
    class String
    {
        friend std::istream& operator>>(std::istream&, String&);            // Функция ввода
    public:
        typedef Vec<char>::size_type size_type;
 
        operator char*();                                                   // Оператор преобразования String - объекта в массив символов с признаком конца строка на конце
        operator const char*() const;
        operator Vec<char>();
 
        String() {};                                                        // Конструктор, создающий пустой объект
        String(size_type n, const char c) : data(n,c) {};                   // Инициализарует string-объект тем, что заполняет n символов копией с
        String(const char* ch)                                              // Копирует из массива-char в string-объект
        {
            copy(ch, ch+strlen(ch), back_inserter(data));
        }
 
        template<class in> 
        String(in b, in e)                                                  // Конструктор, который копирует и инициализирует элементы
        {
            copy(b, e, back_inserter(data));
        }
 
        size_type size() const
        {
            return data.size();
        }
 
        char& operator[](size_type i)                                       // Оператор доступа к произвольному элементу string-объекта
        {
            return data[i];
        }
        const char& operator[](size_type i) const
        {
            return data[i];
        }
 
        String& operator+=(const String& s)
        {
            std::copy(s.data.begin(), s.data.end(), std::back_inserter(data));
            return *this;                                       // Возвращает указатель на себя
        }
 
    private:
        Vec<char> data;
    };
 
//----------------------------------------------
 
    std::istream& operator>>(std::istream& is, String& s)                   // Функция ввода
    {
        s.data.clear();                                         // Очищаем все прошлые значения
 
        char c;
        while(is.get(c) && isspace(c));                         // Игнорируем не значащие пробелы или подобные знаки
 
        if(is)                                                  // Если что-то есть
        {
            do
            {
                s.data.push_back(c);                            // Пока это не пробел и не конец строки добавляй в s
            }
            while(is.get(c) && !isspace(c));
 
            if(is)                                              // Если выпали из цикла do-while из-за пробела, то
                is.unget();                                     // Отмена последнего результата выполнения функции get
        }
        return is;
    }
 
//----------------------------------------------
 
    std::ostream& operator<<(std::ostream& os, String& s)                   // Функция вывода
    {
        for (String::size_type i=0; i<s.size(); ++i)
            os<<s[i];
        return os;
    }
 
//----------------------------------------------
 
    String operator+(const String& s1, const String& s2)                    // Оператор суммирования
    {
        String m=s1;
        m+=s2;
        return m;
    }
 
//----------------------------------------------
При попытке сложения двух string объектов, например
C++
1
cout<<s1+s2;
, компилятор выдает error lnk2028, 2019, 1120. Помогите разобраться в чем ошибка?
Миниатюры
class String, error lnk  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.08.2013, 11:03
Ответы с готовыми решениями:

error lnk?
При компиляции вылазит такая штука: 1&gt;ConsoleApplication.obj : error LNK2028: ёё√ыър эр эхЁрчЁх°хээє■ ыхъёхьє (0A0005DE)...

Error LNK 2001
Здрасьте, помогите быдлокодеру разобраться В общем у меня вроде все файлы проекта друг к другу подключены, но вот такие ошибки линовки ...

error lnk 2019
здраствуйте! решил заняться win api и mfc, открываю книгу &quot;Visual C++. Разработка Windows-приложений с помощью MFC и API-функций&quot; пишу...

3
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
27.08.2013, 11:15
cout << (s1 + s2);
0
8 / 8 / 0
Регистрация: 14.08.2013
Сообщений: 99
27.08.2013, 13:23
там разные приоритеты операций, поэтому надо брать в дужки, как и написал castaway
0
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 63
27.08.2013, 13:37  [ТС]
Дело не в конкретном примере. Оператор суммирования отказывается работать, выводя эти три ошибки.
C++
1
2
s=s1+s2;
cout<<s;
Такая вариация тоже приведет к ошибке. И в чем дело не могу понять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.08.2013, 13:37
Помогаю со студенческими работами здесь

Error LNK 2019. VS 2010
Решил написать программу - суть: попытка создания заготовки для меню. смысл этой проги - тупо выводить на экран 11111111111 ...

Как используя C-String а потом и String class варьировать вывод?
Дана задача: при вводе полного И.О.Ф. (в таком порядке) выводить Ф, И и О(только первую букву и .). И если О не задано - выводить только...

Error LNK 2019. Внешняя библиотека DocxFactory
Всем привет! понимаю, что тема уже давно всем надоела и что уже всё что можно по ней сказали, но у меня есть вопрос. Есть внешняя...

Структура наследования базовых/производных классов: error LNK 1104
Может быть проблема, если я неправильно что-то записал в структуре наследования базовых/производных классов?

Работа с tinyxml ошибки LNK 2019 и LNK 2001
всем привет! скачал архив tinyxml, разархивировал в папку проекта затем написал следующий код: #include &quot;stdafx.h&quot; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru