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

Сижу на лабораторной по классам - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Pascal to C++ http://www.cyberforum.ru/cpp-beginners/thread228438.html
Доброго времени суток.Есть код на паскале. program program7; const a=-3.02; b=0.01; c =-1.1; d=0.2; m=10; var max,q:real; f:array of real; x,y:array of real; k,n:byte; begin writeln('Задание матрицы F:' );
C++ Главная и побочная диагонали С++ Пусть A - двумерный массив целых чисел размерности NxN. Ввести его и найти: Минимальный из элементов главной и побочной диагоналей. Помогите пожалуйста разобраться с диагоналями..всю задачку сделала, а про диагонали никак не могу сообразить( http://www.cyberforum.ru/cpp-beginners/thread228429.html
C++ Надо закончить программу
Задача такая: Дана строка, содержащая произвольный текст. Сколько слов в тексте? Сколько цифр в тексте? Решил не сдирать из интернета, и написать сам :) Но застрял в одном месте, и никак не допру что дальше делать. #include <iostream.h> #include <conio.h> #include <string.h> int main()
C++ STL
Задача: сторонами треугольников и прямоугольников являются цветные (red, green, blue) lego-палстины с соответствующим количеством узлов. Сгенерировать k фигур, выбирая случайно на каждом шагу категорию фигуры, количество узлов и цвет пластины! Вывести: - Фигуры с одинаковым цветом всех сторон упорядочены по возрастанию площади! - Фигуры, которые имеют преобладающий цвет, упорядоченные по...
C++ Работа с файлами и матрицами http://www.cyberforum.ru/cpp-beginners/thread228385.html
Всем здравствуйте! У меня есть проблема. Имеется такое задание: В заданной целочисленной прямоугольной матрице элементы которой по модулю не больше 10 найти наименьшее произведение столбцов. Но проблема в общем-то не в самом условии, с этим я справится могу, но при этом надо, чтобы была возможность считывать значения для матрицы из файла, а я в этом совершенно не разбираюсь. Не мог бы кто-нибудь...
C++ Быстрое деление 2х длинных Предположим у меня есть вектор a и вектор b. Каждый элемент вектора содержит 9 цифр (основание миллиард). Дак вот вопросец, как поделить a на b оптимальным способом. Деление длинного на короткое реализовал carry = 0; for (int i=(int)a.size()-1; i>=0; --i) { long long cur = a + carry * 1ll * base; a = int (cur / (n)); carry = int (cur % (n)); } while... подробнее

Показать сообщение отдельно
kniazik
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 25

Сижу на лабораторной по классам - C++

13.01.2011, 19:43. Просмотров 255. Ответов 0
Метки (Все метки)

Подскажите

Создать класс для работы со строками. В классе перегрузить оператор += для сложения строк. Память под строки отводить динамически. Использовать конструктор с параметрами, конструктор копирования.

Вот такая задача.
До конца лабы осталось 2 часа
есть у кого возможность помочь?

Добавлено через 33 минуты
в поисковике ничего нет
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
#include <iostream>
#include <cstring>
 
using namespace std;
 
class mass{
public:
    friend ostream &operator<<( ostream& , mass & );        //wiwod
    friend istream &operator>>( istream& , mass & );            //wwod
    mass(short size = 255); //konstructor
    mass(char* _str);           //este constructor
    ~mass();                        //deconstructor
public:     
    char* return_str();         //ucozatel na 1 simwol
    short return_size();        //wozwrat razmera masiva
public:
    void selection();               //otbor
    mass operator+(mass _str);//slogenie concat
    bool operator=(mass _str);  //prisvoenie 
private:
    //socritie dannih 
    short size;
    char* str;
};
 
//-----------------------------------//
 
mass::mass(short _size /*=255*/) : str(NULL), size(0){
    str = new char[_size+1]; //+1 dlia okonchaniya stroki
    str[0] = '\0';
    size=_size;
}
 
mass::mass(char* _str) : str(NULL), size(0){
    size=strlen(_str);
    str = new char[size+1];
    str[0]='\0';
    strcpy(str, _str);
}
 
mass::~mass(){
 
}
 
void mass::selection(){
    cout << "It's string:" << endl;
    for (unsigned short i=0; i<strlen(str); i++){
        if ( (str[i]>=' ') && (str[i]<=' ') ){
            cout << str[i];
        }
    }
    cout << endl;
    return;
}
 
char* mass::return_str(){
    return &str[0];
}
 
short mass::return_size(){
    return size;
}
 
mass mass::operator+(mass _str){
    char* sub = new char[size+_str.return_size()+1];
    sub[0]='\0';
    strcpy(sub, str);   //kopiruem stroku
    strcat(sub, _str.return_str()); //dobavliyem wtoruy
    return mass(sub);
}
 
bool mass::operator =(mass _str){
    bool flag(false);
    cout << str;
    if (size>=_str.return_size()){
        strcpy(str, _str.return_str());
        flag=true;
    }
    return flag;
}
 
ostream &operator<<( ostream & ostr , mass &_str ){
    return cout << _str.return_str();
}
 
istream &operator>>( istream & ostr , mass &_str ){
    return cin >> _str.return_str();
}
 
void main(){
    mass x(400);
    cout << "Enter the string::" << endl;
    cin >> x;
    x.selection();
    mass x2(200);
    cout << "Enter the string::" << endl;
    cin >> x2;
    x2.selection();
    cout << "Concatenate::" << endl;
    mass x3;
    x3=x+x2;
    cout << x3 << endl;
    return;
}
Добавлено через 47 секунд
правильно ли это?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru