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

Классы строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблема с классом http://www.cyberforum.ru/cpp-beginners/thread49147.html
Доброе времени суток...у меня проблема в создании класса - динамического массива! проблема в изминении определённого элемента и вывода на экран массива компилятор Visual Studio 2008 Вот заголовочный файл(в нём описание класса) #pragma once class Carray { int* masiv;
C++ Программинг для Windows Всем доброго время суток) Я хочу начать программировать для Windows, но сначала хотел бы задать вам 2 вопроса 1)с чего лучше начать изучение с win32 api как осовы или с mfc как более простого и потом уже перейти к api 2)очень простой: какую литературу посоветуете? всем заранее спасибо:drink: http://www.cyberforum.ru/cpp-beginners/thread48955.html
C++ strict c++ : 64 bit int
strict c++ : 64 bit int как можно задать 64 битную целую переменную? желательно без подключения библиотек, без вывода предупреждений интересует для g++ и msvc9express
Perfomance x86 1мкс C++
perfomance x86 <=1мкс для определения производительности нужен счетчик на уровне 10**-6 секунды вроде видел возможность вывода из ядра линукса такой информации есть ли счетчики такой точности в ХП ? дайте плиз ссылки на код c++ с использованием rdstc
C++ Intrusive list template http://www.cyberforum.ru/cpp-beginners/thread48812.html
intrusive list template для тренировки хочу попробовать написать шаблон списка, который объединяет и принимает элементы унаследованные или созданые от базового класса зы задачка учебная, вводные: не использовать шаблонов контрейнеров stl
C++ Интеграл Есть ли какие-нибудь стандартные средства для вычисления интеграла или производной? Какие-нибудь стандартные включаемые файлы, библиотеки и т.д. Например ввел строку таково вида F(x)=5*x^4; F'(x)=20*x^3; ну и тому подобное. подробнее

Показать сообщение отдельно
ISergey
Maniac
Эксперт С++
1346 / 879 / 51
Регистрация: 02.01.2009
Сообщений: 2,643
Записей в блоге: 1
03.09.2009, 21:50     Классы строки
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
#include <iostream>
 
class CString
{
    char* arr;
    int len;
public:
    CString() :arr(0), len(0){
 
    }
 
    ~CString(){
        if(arr)
            delete[] arr; 
 
    }   
    CString(const char *rhs):arr(0), len(0){
        len = strlen(rhs);
        arr = new char[len + 1];
        strcpy(arr, rhs);
    }
    CString(const CString &rhs):arr(0), len(0){
        *this = rhs;
    }
 
    CString &operator = (const CString &);
 
    CString operator + (const CString &);
 
    friend std::ostream &operator<<(std::ostream &stream, const CString& obj);
    friend std::istream &operator>>(std::istream &stream, CString& obj);
};
 
std::ostream &operator<<(std::ostream &stream, const CString& rhs){
    if(rhs.arr == 0)
        return stream << "error std::ostream &operator<<(std::ostream &stream, const CString& rhs)";
    return stream << "String = " << rhs.arr;  
}
 
std::istream &operator>>(std::istream &stream, CString& rhs)
{
    char buff[256];
    stream >> buff;
    if(rhs.arr)
        delete[] rhs.arr;
    rhs.arr = new char[strlen(buff) + 1];
    strcpy(rhs.arr, buff);
 
    return stream;
}
 
CString CString::operator + (const CString &rhs)
{
    if(rhs.arr == 0 || arr == 0)
        return CString("error CString CString::operator + (const CString &rhs)");
 
    CString res;
 
    res.len = len + rhs.len;
    res.arr = new char[len + 1];
    strcpy(res.arr, arr);
    strcat(res.arr, rhs.arr);
 
    return res;
}
 
CString &CString::operator = (const CString &rhs)
{
    if(this == &rhs)
        return *this;
 
    if(arr)
        delete[] arr;
    len = rhs.len;
    arr = new char[len + 1];
    strcpy(arr, rhs.arr);
    return *this;
}
int main()
{
    CString s1("asd");
    std::cout << s1 << std::endl;
 
    CString s2("dsa");
    CString s3;
 
    std::cin >> s3;
    std::cout << s3 << std::endl;
 
    s3 = s1 + s2;
 
    std::cout << s3 << std::endl;
    std::cout << s2 << std::endl;
    std::cout << s1 << std::endl;
 
    return 0;
}
 
Текущее время: 06:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru