0 / 0 / 0
Регистрация: 03.02.2012
Сообщений: 58
1

Шаблон класса деструктор вызывает ошибку

04.06.2014, 11:11. Показов 1896. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не так чего после того как доходит до деструктора выдает такую ошибку

Шаблон класса деструктор вызывает ошибку


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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <windows.h>
 
using namespace std;
 
template <class T> 
class A{
        
    int  size;        
    T    *mas;
 
public:
    A(int s);
    ~A(){
        if(mas){
            delete [] mas;
        }
    };      
    void set();
    void print();   
};
 
template<class T>A<T>::A(int s){
    size = s;
    if(s)
    mas = new T [size];
    else
    mas = 0; 
}
 
template<class T>void A<T>::set(){
    for(int i=1;i<size+1;i++){
        cout << "A[" << i << "] = ";
        cin >> mas[i];
    }
}
 
template<class T>void A<T>::print(){
    for(int i=1;i<size+1;i++){
        cout << "A[" << i << "] = " << mas[i]/i << endl;
    }
}
 
using namespace System;
 
int main()
{
    //----------->>>>>>>>> для int
    A<int>my(3);
    my.set();
    my.print();
    _getch();
    //----------->>>>>>>>> для double
    A<double>my_2(3);
    my_2.set();
    my_2.print();
    _getch();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2014, 11:11
Ответы с готовыми решениями:

Push_back в vector вызывает деструктор класса
Всем привет. Имеется следующий код: #include &lt;vector&gt; #include &lt;iostream&gt; class MyClass{...

Деструктор вызывает исключение Access violation
Создаю велосипед - класс с динамическим массивом. При вызове деструктора срабатывает исключение...

Шаблон класса выдает непонятную ошибку
template &lt;class one_of_the_strings&gt; class MarkovAlgorithm { private: int quantity; bool...

List не вызывает деструктор класса
Всем привет. Сегодня работал со списком List и при отладке обратил внимание на то, что он не...

4
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
04.06.2014, 11:15 2
Цитата Сообщение от Дъячелли Посмотреть сообщение
for(int i=1;i<size+1;i++){
* * * * cout << "A[" << i << "] = ";
Массивы индексируются с нуля, тут выход за границу.
1
0 / 0 / 0
Регистрация: 03.02.2012
Сообщений: 58
04.06.2014, 11:31  [ТС] 3
так если с нуля тогда в функции print будет на 0 делитьcя и опять ошибка ?

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
template<class T>void A<T>::set(){
    for(int i=0;i<size;i++){
        cout << "A[" << i << "] = ";
        cin >> mas[i];
    }
}
 
template<class T>void A<T>::print(){
    for(int i=0;i<size;i++){
        cout << "A[" << i << "] = " << mas[i]/i+1 << endl;
    }
}
сделала так ошибка сразу в первом принте появилась, похоже это не деструктор а деление, чего-то не фуричит как мне хочется

Добавлено через 10 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
template<class T>void A<T>::set(){
    for(int i=0;i<size;i++){
        cout << "A[" << i << "] = ";
        cin >> mas[i];
    }
}
 
template<class T>void A<T>::print(){
    for(int i=0;i<size;i++){
        cout << "A[" << i << "] = " << mas[i]/(i+1) << endl;
    }
}
да все просто, никаких проблем с деструктором, это у меня похоже проблемы массивами, спасибо =)
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
04.06.2014, 11:54 4
C++
1
mas[i]/(i+1);
В чем проблема?
0
0 / 0 / 0
Регистрация: 03.02.2012
Сообщений: 58
04.06.2014, 11:57  [ТС] 5
да сама заметила, затупила =), а к массивам и правда строго с нуля, в этом изначальная проблема бла
0
04.06.2014, 11:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2014, 11:57
Помогаю со студенческими работами здесь

еременная которой нигде нет(не описана) не вызывает ошибку в большом инете, а на локале вызывает ошибку
Совсем я ничего не понимаю. Переменная которой нигде нет(не описана) не вызывает ошибку в большом...

Правда ли, что в оператор delete только вызывает деструктор, но не разрушает объект
Всем привет. Скажите, пожалуйста правда ли что в С++/CLI оператор delete только вызывает деструктор...

Шаблон Dispose и деструктор
Здравствуйте, форумчане, есть такой вопрос, связанный с реализацией шаблона где одновременно в...

Шаблон родительского класса и шаблон класса потомка
Запутался, как правильно пронаследоваться от шаблона класса? #include &lt;iostream&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru