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

Возвратить тип шаблона,так чтобы результат при вызове присваивался объекту - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Стек: Ошибка в объявлении getch http://www.cyberforum.ru/cpp-beginners/thread1170427.html
Добрый вечер! Реализовал стек и некоторые функции. Вопрос1: в функции doub имеется проблема - нет ограничения, судя по ошибкам, как это сделать? Вопрос2: ошибка в объявлении getch почему-то. Код ниже: #include <iostream>
C++ Сумма элементов массива, имеющих в своей записи все одинаковые цифры Определить сумму элементов массива, имеющих в своей записи все одинаковые цифры и расположенных между двумя элементами с максимальным значением, не включая сами эти элементы http://www.cyberforum.ru/cpp-beginners/thread1170424.html
C++ Шифр Цезаря C++
Help нужно написать программу на С++, которая шифрует русские и английские слова. Делает запрос на сдвиг. Зашифрованный код переводил обратно в нормальный текст. (С запросами и выводами).(Шифр Цезаря). Уровень реализации новичка. Заранее благодарен.
C++ Дана строка до точки, группа символов в которой между пробелами считается словом
Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются. Удалить из строки все пробелы, расположенные перед знаком препинания.
C++ Организация исходников http://www.cyberforum.ru/cpp-beginners/thread1170387.html
Не нашел в гугле толковый инфы. Вот есть у меня допустим два класса, нейрон и перцептрон. Описал я их в .h. Реализовал в .cpp одном. Но может лучше реализовать в разных .cpp? Т.е. нейрон в neyron.cpp, а перцептрон в perceptron.cpp? Или если описаны в одном хэдере, то и реализовывать в одном cpp? Как лучше в общем? Проект небольшой, около 2к строк.
C++ Создание классов в С++. Раздельная компиляция При создании класса C++ в VS создается два файла, "<имя_класса>.h" и "<имя_класса>.cpp", зачем они ? В каком сам класс писать? Простите за глупый вопрос, но только начал разбираться и вот сразу такой момент в моей книге про это не слова :-) Даже странно. подробнее

Показать сообщение отдельно
Вероника99
4 / 4 / 1
Регистрация: 16.12.2013
Сообщений: 413
10.05.2014, 20:37  [ТС]     Возвратить тип шаблона,так чтобы результат при вызове присваивался объекту
<<Создать и инициализировать ( в с++ к счастью по другому и нельзя) ссылку, а потом передать в функцию ожидая по ней возврат, это лучше. Впрочем, как знаете.>>
Да,хорошая идея,может так тоже сделаю.
Кстати почему-то компилер ругается на деструктор
Вот код
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
#include "stdafx.h"
#include <iostream>
#include <cstring>
using namespace std;
#define K 5
template <typename T>
class array
{
private:
    T **p;
    int size;
    int row,column;
    //int mtx[K][K];
public:
 
    array(int a,int b)
    {
        row=a;column=b;
        //cout<<" a= "<<a;
        p=new int *[a*b];
        for(int i=0;i<(a*b);i++)
        {
            p[i]=new int[(a*b)];
 
        
        }
/*      for(int i=0;i<row;i++)
          for( int j=0;j<column;j++)
          {  
                p[i][j]=a*b;
                    cout<<" "<<p[i][j];
        
        }*/
    }
 
 
    //~array(){for(int i=0;i<row*column;i++) delete [] p[i]; };
    void enter();
    void copycolumn();
    int GetRow(){return row;}
    array<T>  copyrow(const array<T>&);
    void choose();
    void show();
 
 
    array(const array &myArray) //конструктор копирования
{
    column=myArray.column;
    row=myArray.row;
    cout<<" Col"<<column<<"Row "<<row;
    p=myArray.p;
//  cout<<"\n p="<<p;
/*  for(int i=0;i<(column*row);i++)
        {
            this->p[i]=new int[column*row];
        }*/
        
        for(int i=0;i<column;i++)
            for(int j=0;j<row;j++)              
    {   
        this->p[j][i]=myArray.p[j][i];
    
    }
            for(int i=0;i<column;i++)
        {   cout<<"\n";
            for(int j=0;j<row;j++)      
                cout<<this->p[j][i]<<" ";           
        }
        
 
}
};
 
int main()
{
    array <int> myArray(2,3);
    cout << "Enter numbers for matrix: \n";
     myArray.enter();
    cout << "Matrix: \n";
    myArray.show();
    myArray.copycolumn();
    array <int> myArray2(myArray.copyrow(myArray));
    //array <int> myArray1(myArray);
//  myArray1=myArray.GetRow();
    //myArray1=myArray.copyrow();
    myArray.choose();
    
 
}
 
template <typename T>
void array<T>::choose()
{
    char str[10];
    int n,m;
    T **d=new int*[column*row];
    for(int i=0;i<(column*row);i++)
        {
            d[i]=new int[column*row];
        
        }
    cout<<"What do you want to choose: column or row? (write word)\n";
    a:cin>>str;
    if(strcmp(str,"row")==0)
    {   
        cout<<"row"<<row;
        cout<<"\nEnter number of "<<str<<" ";
        v:cin>>m;
        m=m-1;
            if(m>=row)
            {
                cout<<"It's number more than limit,enter one more time\n";
                goto v;
            }
        int j=m;
        for(int i=0;i<column;i++)
        
            d[i]=p[i]; 
        
            for(int i=0;i<column;i++)
                cout<<" "<<d[j][i]; 
    }
    else if(strcmp(str,"column")==0)
    {   
        cout<<"column";
        cout<<"\nEnter number of "<<str<<" ";
        b:cin>>n;
        n=n-1;
            if(n>=column)
            {
                cout<<"It's number more than limit,enter one more time\n";
                goto b;
            }
            
    int j=n;
    for(int i=0;i<row;i++)
    {   
        d[i]=p[i];
        cout<<d[i][j]<<" ";
        cout<<"\n";
    }
        
    
    }
    else if(1)
    {
        cout<<"Error,enter one more time\n";
        goto a;
 
    }
    
}
 
template <typename T>
array<T> array<T>::copyrow(const array<T> &myArray)
{
 
    
    //myArray1.show();
    cout<<"\n";
    int **r=new int*[column*row];
    for(int i=0;i<(column*row);i++)
        {
            r[i]=new int[column*row];
 
        
        }
    //int j=0;
        cout<<"\nCopy mtx:\n";
        array <int> myArray1(myArray);
/*  for(int i=0;i<column;i++)
            for(int j=0;j<row;j++)              
    {   
        r[j][i]=p[j][i];
        
    }
 
        for(int i=0;i<column;i++)
        {   cout<<"\n";
            for(int j=0;j<row;j++)      
                cout<<r[j][i]<<" ";         
        }*/
 
 return myArray1;
}
 
 
 
template <typename T>
void array<T>::copycolumn()
{
    int **c=new int*[column*row];
    for(int i=0;i<(column*row);i++)
        {
            c[i]=new int[column*row];
 
        
        }
    int j=1;
    cout<<"\nCopy column:\n";
    for(int i=0;i<row;i++)
    {   
        c[i]=p[i];
        cout<<c[i][j]<<" ";
        cout<<"\n";
    }
 
}
template <typename T>
void array<T>::enter()
    {
    
        for(int i=0;i<row;i++)
          for( int j=0;j<column;j++)
          {  
                cin>>p[i][j];
                    //cout<<" "<<p[i][j];
        
        }
    }
 
template <typename T>
void array<T>::show()
{
    int temp;
    for(int i=0;i<row;i++)
                {
                    for(int j=0;j<column;j++)
                
                    cout<<p[i][j]<<" ";
                    cout<<"\n";
                
                }
                
}
 
Текущее время: 01:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru