Typedef struct X{X* pX;}X; - C (СИ)
Формулировка задачи:
Собственно сабж:
Когда происходит объявление
typedef struct X{
X* ptrX;
}X;ptrX
типX
еще не объявлен. Как сделать "по дзену" ?Решение задачи: «Typedef struct X{X* pX;}X;»
textual
Листинг программы
#include <iostream>
struct thing {
friend std::ostream& operator<< (std::ostream &os, const thing& t);
};
std::ostream& operator<< (std::ostream &os, const thing &t) {
os << "thing";
return os;
}
typedef int counter_t;
typedef thing thing_t;
int main() {
counter_t a = counter_t();
thing_t t = thing_t();
std::cout << a << ' ' << t << ' ';
}
Объяснение кода листинга программы
- Включается заголовочный файл
<iostream>, который содержит определения стандартных потоков ввода-вывода. - Определяется структура
thing. - Определяется дружественный оператор
<<для структурыthingи стандартного потокаstd::ostream. - В операторе
<<для структурыthingвыводится строкаthing. - Типизируются переменные
aиtкакcounter_tиthing_tсоответственно. - Переменной
aприсваивается значение по умолчанию для типаcounter_t. - Переменной
tприсваивается значение по умолчанию для типаthing_t. - Выводится значение переменной
aна стандартный поток выводаstd::cout. - Выводится значение переменной
tна стандартный поток выводаstd::cout. - Возвращается пустая строка.