Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
55 / 56 / 34
Регистрация: 29.12.2012
Сообщений: 478

Проблема с созданием классов

08.05.2018, 09:35. Показов 914. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема с создованием классов в IDE такая:
Создал классы в visual
добавить->класс
Все отлично работает, но мне не нужны конструкторы по умолчанию я их удалил
C++
1
Obj obj;
Но как то случайно обнаружил что такая строка у меня не выдает ошибки

Добавлено через 38 секунд
Конструктор с параметрами есть
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.05.2018, 09:35
Ответы с готовыми решениями:

Проблема с созданием экземпляра класса
Добрый день! Есть файл "File.cpp", в нём находится точка входа и класс "Helper". Пытаюсь создать инстанс класса Helper: ...

Проблема с созданием инструментальной панели
Заранее прошу прощения если вопрос адресован не тому форуму. Это мой первый мессадж и я не уверена нужно ли его писать здесь или на форуме...

Проблема с созданием массива из двух существующих
Здравствуйте. Нужно сформировать массив z из массивов y и x,чтобы нечетный элемент массива y складывался с четным элементом массива x и...

17
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
08.05.2018, 10:05
нужно наоборот - делать конструктор по-умолчанию и делать его приватным
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
08.05.2018, 10:29
Цитата Сообщение от Черный мечник Посмотреть сообщение
Конструктор с параметрами есть
Тогда не может этого быть:
Цитата Сообщение от Черный мечник Посмотреть сообщение
Но как то случайно обнаружил что такая строка у меня не выдает ошибки
если:
Цитата Сообщение от Черный мечник Посмотреть сообщение
конструкторы по умолчанию я их удалил
0
55 / 56 / 34
Регистрация: 29.12.2012
Сообщений: 478
08.05.2018, 10:42  [ТС]
Kuzia domovenok, Тоже самый эффект
у класса Obj приватный конструктор по умолчанию
C++
1
Obj obj;
не вызывает ошибки
но кстате
C++
1
obj.
пишет не определенна переменная

Добавлено через 1 минуту
nd2, Ну у меня так и происходит
Я создавал с помошью визуалки
добавить->класс

Добавлено через 10 минут
nd2, Я удалил конструктор без параметров
Мне среда в подсказке показывает два конструктора с параметрами и конструктор копирования
C++
1
Obj obj;
Не вызывает ошибку
далее пишу
C++
1
obj.
и мне пишит переменная не определенна
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
08.05.2018, 12:57
Цитата Сообщение от Черный мечник Посмотреть сообщение
Не вызывает ошибку
При компиляции?

Добавлено через 15 секунд
Цитата Сообщение от Черный мечник Посмотреть сообщение
Не вызывает ошибку
При компиляции?

Добавлено через 19 минут
...

Добавлено через 21 минуту
...

Добавлено через 1 минуту
Цитата Сообщение от Черный мечник Посмотреть сообщение
Не вызывает ошибку
При компиляции?

Не по теме:

Форум глючит.

0
82 / 82 / 44
Регистрация: 14.07.2013
Сообщений: 410
08.05.2018, 13:04
Черный мечник, а зачем удалять конструктор по умолчанию если он потом используется в этой строчке
C++
1
Obj obj;
И зачем конструктор с параметрами если объект создается при помощи конструктора по умолчанию?))
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
08.05.2018, 13:09
IchimaruGin, тут вопрос не в том: зачем или не зачем.
0
82 / 82 / 44
Регистрация: 14.07.2013
Сообщений: 410
08.05.2018, 13:23
nd2, ну тогда пусть покажет определение класса.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
08.05.2018, 13:25
Пусть сначала скажет: ошибки при компиляции нет, или при написании кода? Если при написании, то студия часто глючит в этом отношении. Отсутствие ошибок проверяется компиляцией.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
08.05.2018, 13:29
C++
1
2
3
4
5
6
7
8
class test {
private:
    test() {};
};
int main() {
    test instance;
    return 0;
}
Code
1
 error C2248: test::test: невозможно обратиться к private член, объявленному в классе "test"
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
08.05.2018, 13:35
Kuzia domovenok, с этим всё понятно, тема, как я понял, о другом. ТС утверждает, что вот такой код не выдаёт у него ошибок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class test 
{
    test(int n) : x(n) 
    {}
private:
    int x;
    
};
int main() 
{
    test instance;
    return 0;
}
Добавлено через 2 минуты
Предполагаю, что при написании не выдаёт (в подсказках).
0
55 / 56 / 34
Регистрация: 29.12.2012
Сообщений: 478
08.05.2018, 15:07  [ТС]
Вот у меня запускается
Вложения
Тип файла: 7z Cyrsach_Media.7z (1.25 Мб, 9 просмотров)
0
82 / 82 / 44
Регистрация: 14.07.2013
Сообщений: 410
08.05.2018, 15:45
Черный мечник,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main() 
{ 
    setlocale(LC_ALL, "Russian");
    Media m(); // объект не создается, воспринимает как функцию что принимает void и возвращает Media
    Media m2(1,2,3);
    Media m3(1,2,3);
    m2.Show_instans();
    HDD h();
    HDD h1(2,3,5,"SATA",5);
    h1.Show_instans();
    m2.Show_instans();
    system("pause"); // Только для тех, у кого MS Visual Studio
    return 0; 
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
08.05.2018, 15:58
Если не нужна какая-то стандартная функция, то её нужно пометить как deleted, а не пихать в приватную область. Об этом пишет Майерс, к примеру. Приватная область - костыль для С++98.

Добавлено через 8 минут
Целая глава в "Effective Modern C++" называется "Prefer deleted functions to private undefined ones."
0
55 / 56 / 34
Регистрация: 29.12.2012
Сообщений: 478
08.05.2018, 16:00  [ТС]
IchimaruGin, Ясно это все визуалка виновата если все ручками каждый файл то такое не проиходит
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
08.05.2018, 16:03
Declaring these functions private prevents clients from calling them. Deliberately
failing to define them means that if code that still has access to them (i.e., member
functions or friends of the class) uses them, linking will fail due to missing function
definitions.
In C++11, there’s a better way to achieve essentially the same end: use “= delete” to
mark the copy constructor and the copy assignment operator as deleted functions

The difference between deleting these functions and declaring them private may
seem more a matter of fashion than anything else, but there’s greater substance here
than you might think. Deleted functions may not be used in any way, so even code
that’s in member and friend functions will fail to compile if it tries to copy
basic_ios objects. That’s an improvement over the C++98 behavior, where such
improper usage wouldn’t be diagnosed until link-time.
И т.д.
0
82 / 82 / 44
Регистрация: 14.07.2013
Сообщений: 410
08.05.2018, 16:09
Черный мечник, да причём там ручки) просто бывают такие же проблемы с std::thread вроде создаешь поток а получается объявление функции)
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
09.05.2018, 02:29
Цитата Сообщение от Черный мечник Посмотреть сообщение
Вот
И где здесь такое?
Цитата Сообщение от Черный мечник Посмотреть сообщение
C++
1
Obj obj;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.05.2018, 02:29
Помогаю со студенческими работами здесь

Проблема с созданием массива из двух существующих
1)Вот оригинальное задание(для первого кода): Сформировать новый массив из массивов y и x таким образом, что нечетный элемент массива y...

Проблема с созданием динамического массива (выдает ошибку)
Здравствуйте, задание такое: "Размер и данные в матрицу вводятся с клавиатуры. Элементы и результаты, разместить в памяти динамически....

Проблема с созданием классов с++ в MS Visual studio 10 and 17
Проблема с Windows Form, забыл указать! Здравствуйте, не могу создать объекты на подобие класса, просто не получается, ругается на все....

созданием объектов, классов и механизмом наследования c#
в С# Построить иерархию классов в соответствии с вариантом задания: -Журнал, книга, печатное издание, учебник.

Проблема с созданием подписи
Lotus Domino 8.5.3 FP6 на одном из почтовых файлов пропала возможность настроить подпись т.е. в...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru