1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||||||||||||||||
1 | ||||||||||||||||
Конструкторы по умолчанию.29.12.2011, 20:03. Показов 8422. Ответов 19
Метки нет (Все метки)
Здравствуйте, возник вопрос. Только что минут 10 въезжал что у меня не так. Суть вот в чем. Есть некий класс, в моем случае например digit. Есть 3 конструктора, 1 по умолчанию без аргументов, 2 с параметрами. Проблема в том, что когда я начал проверять конструкторы, то есть объявлять объект данного класса с инициализацией, все вроде бы было нормально пока я не дошел до конструктора по умолчанию. Дело в том, что я не удалял скобки после теста конструктора с аргументом, просто удалял значения из них. Получалось вот так
0
|
29.12.2011, 20:03 | |
Ответы с готовыми решениями:
19
Заменить конструкторы на конструктор по умолчанию Конструкторы. Почему-то по умолчанию и копирующий не срабатывают, помогите найти ошибку. Что такое конструкторы классов, копирования, по умолчанию с запретом неявного приведения аргументов? Написать класс «массив» (В классе реализовать следующие методы: конструкторы (по умолчанию, с параметрами,) |
Полярный
476 / 448 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
|
|
29.12.2011, 20:08 | 2 |
Код в студию.
0
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||||||
29.12.2011, 20:27 [ТС] | 3 | |||||
Да код не принципиален. Но вот к примеру такой.
0
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
29.12.2011, 20:34 [ТС] | 5 |
Странно, но я ничего не отключал. Стоит debug конфигурация, никаких warning не было.
0
|
Полярный
476 / 448 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
|
|
29.12.2011, 20:36 | 7 |
А откуда нам знать откуда берётся "blabla"?
Это не факт. + У вас названо 3 конструктора, вы и выложите оригинал, от строки до строки. Не выкладывайте только остальные функции (мэйн выложите)
0
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|
29.12.2011, 20:38 | 8 |
0
|
29.12.2011, 20:38 | 9 | |||||
0
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||||||||||||||||
29.12.2011, 20:39 [ТС] | 10 | |||||||||||||||
Я же написал в первом сообщение, данные не важны. Конструктор по умолчанию инициализирует нулем. Вот пример использования:
0
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
29.12.2011, 20:52 [ТС] | 12 |
Вот лог построения
Лог
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/c/Users/Toxa/Documents/NetBeansProjects/CppApplication_1' "/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/cppapplication_1.exe make[2]: Entering directory `/c/Users/Toxa/Documents/NetBeansProjects/CppApplication_1' mkdir -p build/Debug/MinGW-Windows/_ext/42866081 rm -f build/Debug/MinGW-Windows/_ext/42866081/huge_int.o.d g++.exe -c -g -I/F/Programming/Libraries/Includes/My\ Work -MMD -MP -MF build/Debug/MinGW-Windows/_ext/42866081/huge_int.o.d -o build/Debug/MinGW-Windows/_ext/42866081/huge_int.o /F/Programming/Libraries/Includes/My\ Work/Huge\ Int/huge_int.cpp mkdir -p build/Debug/MinGW-Windows/_ext/606542049 rm -f build/Debug/MinGW-Windows/_ext/606542049/digit.o.d g++.exe -c -g -I/F/Programming/Libraries/Includes/My\ Work -MMD -MP -MF build/Debug/MinGW-Windows/_ext/606542049/digit.o.d -o build/Debug/MinGW-Windows/_ext/606542049/digit.o /F/Programming/Libraries/Includes/My\ Work/Huge\ Int/Digit/digit.cpp mkdir -p build/Debug/MinGW-Windows rm -f build/Debug/MinGW-Windows/main.o.d g++.exe -c -g -I/F/Programming/Libraries/Includes/My\ Work -MMD -MP -MF build/Debug/MinGW-Windows/main.o.d -o build/Debug/MinGW-Windows/main.o main.cpp mkdir -p dist/Debug/MinGW-Windows g++.exe -o dist/Debug/MinGW-Windows/cppapplication_1 build/Debug/MinGW-Windows/_ext/42866081/huge_int.o build/Debug/MinGW-Windows/_ext/606542049/digit.o build/Debug/MinGW-Windows/main.o make[2]: Leaving directory `/c/Users/Toxa/Documents/NetBeansProjects/CppApplication_1' make[1]: Leaving directory `/c/Users/Toxa/Documents/NetBeansProjects/CppApplication_1' Добавлено через 7 минут Вбил только что на liveworkspace и вправду warning выскочил. Какой параметр нужен компилятору? -Waddress? И мне все таки интересно, чем отличается инициализация с пустыми скобками и без скобок.
0
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
29.12.2011, 20:58 [ТС] | 14 |
Спасибо, добавил. Так в чем проблема данной инициализации? Может где нибудь написано про это?
0
|
29.12.2011, 21:35 | 15 |
Стандарт штудирую. Советую присоединится, полагаю копать надо в сторону главы 8.5 Initializer или 8.4 Function
Если попытаться вывести адрес int a(), то выдаст 1. Так, между словом.
0
|
Полярный
476 / 448 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
|
|
29.12.2011, 21:41 | 16 |
А функцией trace into нельзя проверить какой конструктор вызывается чтоли?
0
|
29.12.2011, 21:52 | 17 |
В общем, в стандарте указано, что при вызове X a() не создается объект класса Х, но создается функция, которой ничего не передается, и которая возвращает X(перевод - "..and returning an X"). Поэтому я предполагаю, что возвращается некое подобие указателя(если не сам указатель) на класс Х с адресом true. Повторяю, это только предположение.
1
|
85 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
|
|
29.12.2011, 21:57 | 18 |
0
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
29.12.2011, 22:50 [ТС] | 19 |
Ну я так и предпологал, что создается что то вроде функции, спасибо.
0
|
29.12.2011, 22:58 | 20 | ||||||||||||||||||||
После перевода c++ в asm получилось следующее
А в стандарте я, к своему стыду, ничего внятного не нашел. Может плохо искал. ps/ Привел только те участки, которые различались.
1
|
29.12.2011, 22:58 | |
29.12.2011, 22:58 | |
Помогаю со студенческими работами здесь
20
Webpack собирает проект, а приложение говорит что мои конструкторы не конструкторы Определите класс матриц. Напишите перегруженные конструкторы для создания одномерной и двумерной матриц. В конструкторы передаются размерности матриц Создать функцию с двумя аргументами, имеющими значение по умолчанию; вывести на экран значения по умолчанию Конструкторы базовых классов ("Производный класс не наследует конструкторы базовых классов") Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |