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

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

08.05.2018, 09:35. Показов 886. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru