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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 48, средняя оценка - 5.00
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
#1

Недопустимый неполный тип - C++

13.12.2012, 22:43. Просмотров 7594. Ответов 4
Метки нет (Все метки)

Здравствуйте! Помогите решить проблему с недопустимы полным типом. Код:
main.cpp
C++
1
2
3
4
5
6
7
8
9
#include "headers.h"
#include "support.h"
 
int main() {
 
    ss_array_2d<int> A(10); //Ошибка тут
 
    return EXIT_SUCCESS;
}
support.h
C++
1
2
3
4
#pragma once
 
template <typename sstype>
class ss_array_2d;
support.cpp
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
#include "headers.h"
#include "support.h"
 
template <typename sstype>
class ss_array_2d {
public:
             ss_array_2d(int);
             ss_array_2d();
            ~ss_array_2d();
 
    void     set_array(int);
    int      get_size();
    sstype  &operator[](int);
 
private:
    sstype * A;
    int      size;
};
 
template <typename sstype>
ss_array_2d<sstype>::ss_array_2d(int esize) {
 
    this->size = esize;
    A = new sstype [this->size];
    cout << "Class initialized, size of array is " << this->size << endl;
 
}
 
template <typename sstype>
ss_array_2d<sstype>::ss_array_2d() {
 
    this->size = -1;
    A = NULL;
    cout << "Class initialized, empty\n";
 
}
 
template <typename sstype>
void ss_array_2d<sstype>::set_array(int esize) {
 
    if(A) {
        
        delete A[];
        A = new sstype [esize];
        this->size = esize;
 
    } else {
 
        A = new sstype [esize];
        this->size = esize;
 
    }
}
 
template <typename sstype>
int ss_array_2d<sstype>::get_size() {
    return this->size;
}
 
template <typename sstype>
ss_array_2d<sstype>::~ss_array_2d() {
 
    if(A)
        delete A [];
 
}
 
template <typename sstype>
sstype& ss_array_2d<sstype>::operator[](int i) {
 
    return A[i];
 
}
Добавлено через 5 минут
При чём с конструктором A() программа компилируется, но сообщение из конструктора не выводится
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 22:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Недопустимый неполный тип (C++):

union REGS rg; недопустимый неполный тип - C++
Прерывания с клавиатуры Может я чего не подключил ещё нужного? #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;dos.h&gt; ...

Односвязные списки: недопустимый неполный тип - C++
По книге Седжвика пишу реализацию списков. Есть такие файлы: list.h: #ifndef LIST_H #define LIST_H struct data; struct...

Недопустимый неполный тип, не могу найти ошибку - C++
#include&lt;iostream&gt; #include&lt;locale&gt; #include&lt;string&gt; #include&lt;iomanip&gt; #include&lt;fstream&gt; void Poisk_1(), Poisk_2(), Poisk_3(),...

Недопустимый неполный тип , или как передать в функцию указатель на объект класса , или просто объект - C++
Други мои , кодеры. Не могу я ни как передать в функцию объект класса , или что еще лучше(для меня , так как учусь работать с указателями)...

Неполный тип - C++
Доброго времени суток. Написал следующую программу: #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;string&gt; #include...

Неполный тип данных - C++
Компилятор выдает ошибку неполный тип данных, ругается на строку с объявлением процедуры void DrawGrid(HDC *hdc); и с самой процедурой ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
13.12.2012, 22:47 #2
iRomul, в support.h должно быть нормальное описание класса
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
13.12.2012, 22:48 #3
Цитата Сообщение от iRomul Посмотреть сообщение
При чём с конструктором A() программа компилируется,
чето я не увидел у тебя этот конструктор
Цитата Сообщение от iRomul Посмотреть сообщение
if(A)
* * * * delete A [];
по моему все таки
C++
1
 delete []A ;
да и проверку можешь выбросить если A = = NULL
то delete ничего страшного не сделает просто вернется да и все
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
13.12.2012, 22:48 #4
DELETED.
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
13.12.2012, 22:53  [ТС] #5
I.M., спасибо, помогло! А я думал, что так тоже работает.

ValeryS, спасибо за советы! Разобрался с конструктором по умолчанию.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2012, 22:53
Привет! Вот еще темы с ответами:

error C3168: bool: недопустимый базовый тип для перечисляемого типа - C++
В Visual C++ 2005 это не вызывает ошибки. А почему в Visual C++ 2010 ошибка? enum State:bool{ON=true, OFF=false}; // error C3168:...

Istringstream "неполный тип" - C++
хочу записать данные в вектор. компилятор жалуется на is &quot;полный тип&quot; а как его сделать полным? string bufDownloadVector; ...

Недопустимый вариант выбора, недопустимый break - C++
Помогите пожалуйста исправить ошибку в коде программы #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; void main () {...

выдаёт неполный ответ... - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; # define n 5 using namespace std; int main (void) { int mass,i,j,max,a; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.12.2012, 22:53
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru