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

Выделение памяти под шаблон класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передача строки string в функцию http://www.cyberforum.ru/cpp-beginners/thread1207336.html
Завтра экзамен а я печатаю строки :D Что хочу: ввожу две строки, передаю их в функцию по указателю, сравниваю каждый символ и если они совпадают заменяю символ похожий в первой строке на...
C++ Составить программу вычисления и печати таблицы значений функции при заданных значениях параметров Составить программу вычисления и печати таблицы значений функции при заданных значениях параметров. http://www.cyberforum.ru/cpp-beginners/thread1207320.html
C++ Составить программу вычисления и печати таблицы значений функции при заданных значениях параметров
Составить программу вычисления и печати таблицы значений функции при заданных значениях параметров.
Задание со строками C++
Сделать программу которая просит ввести строку пока не введет close, и показывает список всех введенных строк через пробел. Добавлено через 59 минут Бесплатно бы
C++ При компиляции кода вылазит ошибка "error C2027: use of undefined type 'SldWorks'" http://www.cyberforum.ru/cpp-beginners/thread1207288.html
При компиляции кода вылазит ошибка "error C2027: use of undefined type 'SldWorks'". Я писал на чистых плюсах! #include "stdafx.h" #include <atlbase.h> #include <windows.h> #include <iostream>...
C++ Написать функцию Написать функцию, которая получает в качестве параметров адрес числового массива данных, его размер и число. Функция возвращает позицию первого вхождения числа в массив. Функция возвращает сколько... подробнее

Показать сообщение отдельно
Newchap
4 / 4 / 1
Регистрация: 17.09.2013
Сообщений: 179
16.06.2014, 13:57  [ТС]
alsav22, исправил, но теперь ошибка на 91 строке. Спасите-помогите, завтра сдавать бы пора.
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
// ConsoleApplication1.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <iostream>
#include <fstream>
#pragma warning(disable : 4996)
 
 
template<typename X> class vectr{     
public: X* data_;
         int vlength;
public:
    vectr(){ data_ = NULL; } // дефолтный конструктор для возможности создания массива
    vectr(int vlength2)  { data_ = new X[vlength]; vlength = vlength2; }
 
    void vfill()
    {
        for (int i = 0; i < vlength; i++)
            cin >> data_[i];
    }
 
    X& operator[](int i);
    vectr<X> operator+( vectr &t);
    vectr<X> operator=(vectr &t);
    template<typename X>
    friend ostream& operator<<(ostream& as, vectr<X>& u);
};
 
template<typename X>
X& vectr<X>::operator[](int i)
{
    return data_[i];
}
 
template<typename X>
vectr<X> vectr<X>::operator+(vectr &t)
{
    vectr temp;
    for (int i = 0; i < vlength; i++)
        temp.data_[i] = data_[i] + t.data_[i];
    return temp;
}
 
template<typename X>
vectr<X> vectr<X>::operator=(vectr &t)
{
    for (int i = 0; i < vlength; i++)
        data_[i] = t.data_[i];
    return *this;
}
 
template<typename X>
ostream& operator<<(ostream& as, vectr<X>& u)
{
    for (int i = 0; i < u.vlength; i++){
        as << u.data_[i];
    }
    cout << endl;
    return as;
}
template<class T>
class matrix
{
    int n, vlength; 
   //T v(); // ошибка в выделние памяти.
    T *b;
    
public:
     // ошибка
    matrix() { b = NULL; };
    matrix(int n2, int vlength2)
    {
        n = n2;  vlength = vlength2;
        b = new T[n];
    }
 
    void entervalue()
    {
    //  vectr<int> v2(vlength);
        T v2(vlength);
        for (int j = 0; j < n; j++) 
        {
            cout << "enter vector"<<endl;
            v2.vfill();
            b[j] = v2;
        }
        v2 = b[0];
        cout << endl;
        //for (int i = 0; i < n; i++)
            //cout << b[i];
    }
 
    matrix operator+(matrix &t);
    matrix operator=(matrix &t);
    vectr<int>& operator[](int i);
    friend ostream& operator<<(ostream& as, matrix& u);
};
 
 
template<class T>
matrix<T> matrix<T>::operator=(matrix<T> &t)
{
    for (int i = 0; i < n; i++)
        b[i] = t.b[i];
    return *this;
}
template<class T>
matrix<T> matrix<T>::operator+(matrix &t)
{
    matrix temp;
    for (int i = 0; i < n; i++)
        temp.b[i] = b[i] + t.b[i];
    return temp;
}
template<class T>
vectr<int>& matrix<T>::operator[](int i)
{
    return b[i];
}
template<class T>
ostream& operator<<(ostream& as, matrix<T>& u)
{
    cout << endl;
    for (int i = 0; i < u.n; i++)
        as << u.b[i];
    return as;
}
int _tmain(int argc, _TCHAR* argv[])
{ 
int n;
int vlength; // длина вектора
    cout << "enter number of vectors" << endl;
 cin >> n;
 cout << "enter length of vector" << endl;
 cin >> vlength;
/* cout << "testing vectr class" << endl;
 vectr<int> v2(vlength);
 v2.vfill();
 cout << v2;*/
 
 //сделаем матрицу векторов.
    matrix<vectr<int>> Mt(n,vlength);
    Mt.entervalue();
    //cout << "testing << operator for matrix class";
    //cout << Mt;
    //cout << "testing = operator for matrix class";
    //matrix testm(n, vlength);
    //cout << "enter second matrix"<<endl;
    //testm.entervalue();
    //Mt = testm;
    //cout << Mt;
    //cout << "now testing + operator" << endl;
        //testm = Mt + Mt;
        //cout << testm;
    return 0; // переделать для работы с шаблонами
}
Добавлено через 31 минуту
Вернее, я понимаю, почему здесь ошибка. Он дает массиву который инициализировался с "пустым" конструктором не пустой вектор, но как это решить?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru