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

Не объясните в чём разница между случаями - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа со строками и символами, лаба http://www.cyberforum.ru/cpp-beginners/thread893482.html
Проверить правильность написания знаков пунктуации. Слева от знака пунктуации пробел не ставится, справа ставится один пробел. Исправленный текст напечатать. я только считал из файла:cry: #include...
C++ Определить, верно ли, что для каждой точки А принадлежащей М существует точка B принадлежащая M 1.Задано множество M точек на плоскости. Определить, верно ли, что для каждой точки А принадлежащей М существует точка B принадлежащая M (A≠B) такая, что не существует двух точек множества M, лежащих... http://www.cyberforum.ru/cpp-beginners/thread893479.html
C++ Тестирование по двусвязным спискам
Я два вопроса додумать не могу... может кто придумает?) 1. Из чего состоит двусвязный список? a) Поля. b) Узлы. c) Указатели. 2. Какой указатель указывает на последний узел списка? a) Head....
C++ СРОЧНО!Параллельное программирование С++ с OIpenMP
Добрый день кто нибудь может мне пожалуйста скинуть легкую задачку с парал. прогр. завтра надо показать. Любую(пример сортировки, матрицы и т.д.) ОЧЕНЬ ПРОШУ!!!!
C++ Реализация алгоритма сортировки вставками http://www.cyberforum.ru/cpp-beginners/thread893460.html
Мне нужно сделать лабу тема вверху... перед этим прочитал тему http://www.cyberforum.ru/cpp-beginners/thread27084.html все равно не понял как связать, допустим, массив и этот алгоритм. Помогите...
C++ Дан текстовый файл. Перепишите его в выходной файл, удалив все знаки препинания Дан текстовый файл. Перепишите его в выходной файл, удалив все знаки препинания #include <iostream.h> #include <fstream.h> #include <string.h> int main() { char buf; ifstream... подробнее

Показать сообщение отдельно
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.06.2013, 17:50
Есть такое понятие, как неполный тип. Экземпляры таких типов нельзя создавать. Зато можно создавать указатели на такие типы(но такие указатели нельзя разыменовывать и т.д., зато можно применять к ним delete и это будет ub, для таких вещей был придуман boost::checked_delete), а также статические экземпляры таких типов(т.к. статические члены в классе лишь объявляются, затем может идти определение неполного типа, а затем определение статического члена).
Например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
struct Incomplete;
 
struct X
{
    static Incomplete a;  
    Incomplete *p;
};
 
/*
struct Incomplete
{
    int field;
};
*/
 
Incomplete X::a; //error: нельзя определить переменную с неполным типом
 
int main()
{
    X object;
    *object.p = X::a; //error: нельзя разыменовать указатель на неполный тип.
}
Если раскомментить определение Incomplete, то все благополучно скомпилится.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru