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

Перегрузка + для строк - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как подключить к проекту новый файл с функцией http://www.cyberforum.ru/cpp-beginners/thread47701.html
Есть работающий проект на C++ (dll) Хочу в Visual Studio 2008 создать в проекте отдельный файл и в этом файле создать свою функцию которую можно было бы вызывать из существующих файлов Я создал в проекте новый Пустой файл .cpp написал там свою функцию прописал в существующем файле проекта #include "noviy_fail.cpp" но при определении функции в новом фале выскакивают ошибки из существующих...
C++ Выход по ESC Приветствую вас уважаемые "чатлане"! .Пишет вам "пацак". Я начал с Borland C++ 3.1. Наверное все очень просто на самом деле, но как и у всех начинающих ...Есть инструкция - вывод символа на экран и в порт rs-232,которая зацикливается d бесконечным цикле.Внимание вопрос..- Подскажите, как сделать,чтобы программа завершалась только по нажатию клавиши ESC? void main (void) { ... http://www.cyberforum.ru/cpp-beginners/thread47691.html
C++ не могу в нём разобраться (заход 2) C++
Спасибо что помогли мне я думаю что эти задания правильно решены. Извините что я вас загружаю этими задачами но просто я не понимаю этот язык C++. Помогите ещё задачи решить. 1. Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого (само другое число в качестве делителя не рассматривается). Найти все пары натуральных дружественных чисел,...
трудности с CharToOem C++
есть код: char* Rus(char* text) { char* buf = new char(600); CharToOem(text, buf); strcpy(text, buf); delete buf; return text; };
C++ Как настроить GCC http://www.cyberforum.ru/cpp-beginners/thread47616.html
Надо что б по умолчанию дополнительно искал #include в нужной мне директории. Спасибо.
C++ Необходимо дописать значение в вывод текстового файла Имеется программа, которая выводит из списка кучи данных, требуемые нам данные (назовём "1.txt"). Но программу необходимо дописать так, чтоб из файла 2.txt считывало необходимый код, и дописывало его в 1.txt. Вот рабочая прога, которая выводит 1.txt: #include<stdio.h> int main(void) { FILE *in, *out; char tmp, tmp1, tmp2, ichfil, infits, iobalv; int iutano, iutmes, iutdia, iexps; подробнее

Показать сообщение отдельно
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
19.08.2009, 15:58     Перегрузка + для строк
Вот немного поправил
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include <iostream>
#include <cassert>
 
class String
{
    friend String operator + (const String &, const String &);
    friend std::ostream &operator<<(std::ostream &, const String &);
    friend std::istream &operator>>(std::istream &, String &);
public:
    String (){
        sPtr = 0;
    }
    String (const char *);
    String (const String &);
 
    ~String();
    String &operator = (const String &);
    String &operator = (const char *);
 
    int getLength () const;
private:      
    char *sPtr;
    int length;       
};
 
String::String (const char *s)
{
    std::cout<< "Constructor preobrazovaniya: " << s << std::endl;
    length = strlen(s);
    sPtr = new char[length+1];
    //assert(sPtr!=0);
    strcpy(sPtr,s);
}
 
String::String (const String &rhs)
{
    *this = rhs;
}
String::~String()
{
    if(sPtr){
        std::cout << "Destructor: " << sPtr << std::endl;
        delete [] sPtr;
    }                              
}
 
String &String::operator=(const String &right)
{
    if(&right == this)
        return  *this;
 
    if(sPtr)
        delete [] sPtr;
    length = right.length;
    sPtr = new char [length +1 ];
    //assert (sPtr != 0);
    strcpy(sPtr,right.sPtr);
    return *this;
}
 
String &String::operator=(const char* rhs)
{
    if(sPtr)
        delete [] sPtr;
 
    length = strlen(rhs);
    sPtr = new char [length +1 ];
    //assert (sPtr != 0);
    strcpy(sPtr,rhs);
    return *this;
}
 
int String::getLength() const
{
    return length;
}
 
String operator + (const String &t_s2, const String &t_s3)
{
    String t_s1;
    t_s1.length = t_s2.length + t_s3.length;
    t_s1.sPtr = new char[t_s1.length + 1];
 
    strcpy(t_s1.sPtr,t_s2.sPtr);
    strcat(t_s1.sPtr,t_s3.sPtr);
 
    std::cout<<"t_s1.sPtr after all = "<<t_s1.sPtr<<std::endl;
 
    return t_s1;
}
 
std::ostream &operator<<(std::ostream &output, const String &s)
{
    output << s.sPtr;
    return output;        
}
 
std::istream &operator>>(std::istream &input, String &s)
{
    char buff[256];
    input >> buff;
    s = buff;
    return input;        
}
int main()
{
    String s1("aaaa"), s2("ffff"), s3;
 
    s3 = s1 + s2;
    std::cout << s3 << std::endl;
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru