Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 18.04.2019
Сообщений: 32

class classname; В чем смысл?

06.11.2019, 00:05. Показов 3891. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени. Иногда встречается код типа:

C++
1
2
3
4
namespace Compiler
{
    class Context;
}
Не знаю, как это понимать, использовать, и даже пробивать в поисковике.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.11.2019, 00:05
Ответы с готовыми решениями:

В чем разница между ClassName cn и ClassName cn = new ClassName()?
Добрый день! Собственно вопрос в заголовке темы. Будьте добры расскажите пожалуйста в чем между ними разница.

Как работает class className : private otherClassName {} ?
Приветствую всех. Не могу разобраться, как работает такая конструкция: class CMD_Frame: public C37118{ public: // // ...

Очередная ошибка LNK2019: ссылка на неразрешенный внешний символ "public: __cdecl ClassName::ClassName(void)"
Всем привет, по форуму нашёл очень много таких тем, но ни одна конкретно в моём случае не помогла, буду рад любому совету. У меня есть...

26
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
06.11.2019, 23:41
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Алексей1153 Посмотреть сообщение
это только объявление указателя, а не класса
Еще раз:
C++
1
2
3
4
5
6
7
8
9
class Parent
{
public:
    class Child*firstChild;
    //если class Child не объявление класса, почему эта строчка компилируется?
    Child*secondChild;
    //а вот эта - нет
    GrandChild*grandChild;
};
Добавлено через 1 минуту
Цитата Сообщение от Алексей1153 Посмотреть сообщение
Renji, ну так он у тебя в глобальном объявлен же, просто ниже по течению
Ниже по течению однофамилец. Объявления сделанные внутри класса, обычно идут в пространство имен класса.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
06.11.2019, 23:42
Цитата Сообщение от Алексей1153 Посмотреть сообщение
это только объявление указателя, а не класса
да, это то же самое что:
C++
1
2
3
4
5
6
7
8
9
10
class Sepulka
{
public:
    class ::Sepulkaria*sepulkaria;
};
class Sepulkaria
{
public:
    class ::Sepulka*sepulka;
};
0
фрилансер
 Аватар для Алексей1153
6510 / 5769 / 1135
Регистрация: 11.10.2019
Сообщений: 15,410
06.11.2019, 23:47
Цитата Сообщение от Renji Посмотреть сообщение
class Child*firstChild;
здесь ты подсказываешь компилятору, что Child - это имя глобального класса. Но это не предопределение

Цитата Сообщение от Renji Посмотреть сообщение
GrandChild*grandChild;
а тут компилятор не знает, что за неведома зверюшка

Добавлено через 1 минуту
предопределение внутри класса выглядело бы так

C++
1
2
3
4
class xxx
{
   class Child;
};
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
06.11.2019, 23:49
Цитата Сообщение от Алексей1153 Посмотреть сообщение
здесь ты подсказываешь компилятору, что Child - это имя глобального класса. Но это не предопределение
"Опережающее объявление" это и есть подсказка "есть такой класс/функция, а что он из себя представляет - позже напишу".
0
фрилансер
 Аватар для Алексей1153
6510 / 5769 / 1135
Регистрация: 11.10.2019
Сообщений: 15,410
06.11.2019, 23:56
Цитата Сообщение от Renji Посмотреть сообщение
"Опережающее объявление" это и есть подсказка
явное указание, в определённой области видимости, с определённым синтаксисом:

class/struct/union имя_типа;

а запутать себя самого можно всегда

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
class Child
{
};
 
class Parent
{
public:
    class Child ch1;
 
    class Child // Тератома 
    {
    };
 
    class Child ch2;
};
 
int main(int argc, char *argv[])
{
    Parent p;
 
    p.ch1=p.ch2; // ой
 
    return 0;
}
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
07.11.2019, 00:00
Цитата Сообщение от Алексей1153 Посмотреть сообщение
явное указание, в определённой области видимости, с определённым синтаксисом:
Если что-то выглядит как утк4а, плавает как утка и крякает как утка, вероятно это утка. Какой бы там синтаксис не был.
А возможности себя запутать сильно снижаются, если не тащить в язык подобных нелогичных решений ("принцип наименьшего удивления").
0
фрилансер
 Аватар для Алексей1153
6510 / 5769 / 1135
Регистрация: 11.10.2019
Сообщений: 15,410
07.11.2019, 00:03
Renji, историю не исправить, такой язык уже получился на радость создателям компиляторов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.11.2019, 00:03

В чем смысл полиморфизма
Объясните, пожалуйста, смысл полиморфизма. Не могу никак вникнуть. Где и как он используется? И примерчик, пожалуйста

В чем смысл указателей?
Дорогие друзья, не могу понять смысл указателей в С++? Для чего они нужны? Если не трудно на реальном примере объясните ,пожалуйста.

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int')
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i != Bullets.end(); /**/) В строке цикла вот...

В чём смысл return в main()?
Есть ли смысл возвращать значение переменной в main()? Если да - зачем? #include&lt;iostream&gt; using namespace std; int...

В чем смысл заголовочных файлов?
Не понимаю в чем смысл заголовочных файлов,точнее даже не так. Вот к примеру если я пишу клиент-сервер приложение и вот при создании...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru