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

Реализовать класс: “Двумерный массив” - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ переменная типа указатель на int передается по значению? http://www.cyberforum.ru/cpp-beginners/thread244135.html
Всем привет! Изучая С++ возник такой вопрос. Как сделать так чтобы передавая указатель на массив в функцию я мог менять не только массив но и указатель на него? (не спрашивайте зачем мне это нужно, просто разбираюсь как все устроено) Вот кусочек простенького кода. Просто записывем данные в масси и считываем из него. const int MAX = 3; void setArray (int*); void printArray (int*); void main...
C++ вывод строки по заданному слову Доброго всем времени суток! Я только начинаю изучать с++ и мне очень нужна помощь.. кому не сложно помогите пожалуйста... Собственно суть вопроса в следующем: Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово. Вот то что пока у меня получилось. Я только нахожу количество слов, а вот вывести все предложение содержащее это слово не... http://www.cyberforum.ru/cpp-beginners/thread244123.html
C++ Передать сообщение объекту
Немогу разобраться с передачей сообщений объекту помогите напримере задачи: создать обьект на базе класса "студент" при создании обьекта вывести сообщение с фамилией и именем которые ему передаются в сообщении. Или посоветуйте какую-нибуть литературу по ООП где это будет разобрано на примерах.
дачники C++
http://********/?main=task&id_task=12 Люди, подскажите,пожалуйста ,каким методом эту задачу решить можно?А то я решил, но у меня на 1500 символов кода, это ж...
C++ не могу разобраться с кодом.. что бы построить блок схему http://www.cyberforum.ru/cpp-beginners/thread244103.html
#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; void main() { int a, b, n, first, k, i; bool simp;
C++ Error C2679: binary '>>': no operator found which takes a right-hand operand of type нужно написать программу обработки структур. в программе использовать структуру, содержащую поля с информацией об учащихся: - фамилия и инициалы; - дата рождения; - номер группы; - оценки за семестр по предметам: физика, математика, информатика, этика, психология. организовать ввод исходных данных, средний балл каждого учащегося рассчить по введенным оценкам. так же вывести анкетные данные... подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
19.02.2011, 14:00     Реализовать класс: “Двумерный массив”
вот еще для аналогиии набросочек:
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <iostream>
#include <iomanip>
 
template <typename T>
class matrix
{
public:
    typedef T       value_type;
    typedef value_type *    pointer;
    typedef value_type **   long_pointer;
    typedef value_type &    reference;
    typedef size_t      size_type;
 
public:
    matrix(size_type rows = 0, size_type columns = 0) : _rows(rows), _columns(columns), _data_ptr(NULL) {
        std::cout << "constructor " << this << std::endl;
        init();
    }
 
    matrix(const matrix<int> &w) : _rows(w._rows), _columns(w._columns), _data_ptr(NULL) {
        std::cout << "constructor " << this << std::endl;
        init();
    }
 
    ~matrix() {
        std::cout << "destructor " << this << std::endl;
        release();
    }
 
    matrix& operator = (const matrix<value_type> &w) {
        if(this != &w) {
            release();
 
            _rows = w._rows;
            _columns = w._columns;
 
            init();
 
            copy(w._data_ptr);
        }
 
        return *this;
    }
 
    matrix& operator ++() {
        for(size_type i = 0; i < _rows; ++i)
            for(size_type j = 0; j < _columns; ++j)
                ++_data_ptr[i][j];
 
        return *this;
    }
 
    matrix operator ++ (int) {
        matrix<value_type> temporary = *this;
        ++(*this);
        return temporary;
    }
 
    reference at(size_type i, size_type j) {
        return _data_ptr[i][j];
    }
 
    size_type rows() const {
        return _rows;
    }
 
    size_type columns() const {
        return _columns;
    }
 
private:
    void init() {
        _data_ptr = new pointer[_rows];
        for(size_type i = 0; i < _rows; ++i)
            _data_ptr[i] = new value_type[_columns];
    }
 
    void release() {
        if(_data_ptr) {
            for(size_type i = 0; i < _rows; ++i)
                delete [] _data_ptr[i];
            delete [] _data_ptr;
        }
    }
 
    void copy(const long_pointer source) {
        for(size_type i = 0; i < _rows; ++i)
            for(size_type j = 0; j < _columns; ++j)
                _data_ptr[i][j] = source[i][j];
    }
 
private:
    size_type _rows;
    size_type _columns;
    long_pointer _data_ptr;
};
 
template <typename T>
void print_matrix(matrix<T> &m) {
    for(matrix<int>::size_type i = 0; i < m.rows(); ++i) {
        for(matrix<int>::size_type j = 0; j < m.columns(); ++j)
            std::cout << std::setw(3) << m.at(i, j) << " ";
        std::cout << std::endl;
    }
}
 
int main()
{
    // call of the constructor with two parameters
    matrix<int> m(5, 5);    
 
    // fill the buffer by random values [0, 100)
    for(matrix<int>::size_type i = 0; i < m.rows(); ++i)
        for(matrix<int>::size_type j = 0; j < m.columns(); ++j)
            m.at(i, j) = rand() % 100;
 
    // print the matrix on the screen 
    print_matrix(m);
 
    // call operator ++ for matrix
    m++;
    std::cout << "after ++" << std::endl;
    
    // print the matrix on the screen 
    print_matrix(m);
    std::cout << std::endl;
}
 
Текущее время: 15:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru