Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
TierX
 Аватар для TierX
20 / 20 / 0
Регистрация: 28.02.2014
Сообщений: 138
#1

Пояснение к аргументам при вызове функции, и запрет конструктора по умолчанию - C++

19.08.2014, 20:04. Просмотров 361. Ответов 4
Метки нет (Все метки)

Вобщем касательно конструктора такой код:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class box
{
public:
box(int t):z(t){y=6;}
 
void Set(int u, float j){cout<<u<<j;};
int z;
int y;
 
};
 
int main()
{
box b();
}

1) Почему компилируется и даже работает при запуске? Я думаю это както связано с конструктором по умолчанию создаваемым автоматически.
2) Как сделать чтобы не компилировалось и красненьким волнистым подчеркиванием ругалось что нет такого конструктора для этого списка аргументов , так же как это работает при вызове обычных функций?

Второй вопрос:
Когда вызываешь какую-то функцию и нужно передать список аргументов, то в лучшем случае можно увидеть подсказку в виде списка типов (float x, int y, int z) если навести на саму функцию.
Можно ли как-то изменить функцию/конструктор или подсказку (VS) чтобы можно было видеть больше информации о списке аргументов.
Например какие входящие / выходящие, краткий комментарий или еще чонить аля :

(коментарий IN: int X1 , OUT: Y2 ) или похоже...

Например выбор обычных переменных в коде показует в подсказке их рядомстоящий коментарий...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2014, 20:04     Пояснение к аргументам при вызове функции, и запрет конструктора по умолчанию
Посмотрите здесь:

C++ Проблема при вызове функции
C++ Файл: Вычисления значений заданной функции по аргументам из файла
C++ Ошибка при вызове функции
классы. ошибка при вызове конструктора с параметрами C++
C++ Какие нюансы в вызове виртуальных функций из конструктора и из деструктора?
C++ Уничтожения информации в объекте класса при повторном вызове конструктора
C++ Инициализация конструктора по умолчанию
При вызове конструктора ошибка: L "Buffer is too small" & & 0 C++
Ошибка при перегрузка конструктора. Родительский объект инициализирует поле по умолчанию C++
Что за ошибка при вызове конструктора? C++
C++ Крашится приложение при вызове конструктора
C++ Ошибка при вызове функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2442 / 1614 / 235
Регистрация: 24.11.2012
Сообщений: 3,962
19.08.2014, 20:05     Пояснение к аргументам при вызове функции, и запрет конструктора по умолчанию #2
В 14 строке - объявление функции b, не принимающей аргументов и возвращающей объект типа box.
TierX
 Аватар для TierX
20 / 20 / 0
Регистрация: 28.02.2014
Сообщений: 138
19.08.2014, 20:09  [ТС]     Пояснение к аргументам при вызове функции, и запрет конструктора по умолчанию #3
0x10, Блин точно . Както я привык что определения функций только до main могут быть.
John Prick
757 / 690 / 124
Регистрация: 27.07.2012
Сообщений: 1,975
Завершенные тесты: 3
19.08.2014, 23:17     Пояснение к аргументам при вызове функции, и запрет конструктора по умолчанию #4
Цитата Сообщение от TierX Посмотреть сообщение
Второй вопрос:
Когда вызываешь какую-то функцию и нужно передать список аргументов, то в лучшем случае можно увидеть подсказку в виде списка типов (float x, int y, int z) если навести на саму функцию.
Можно ли как-то изменить функцию/конструктор или подсказку (VS) чтобы можно было видеть больше информации о списке аргументов.
Например какие входящие / выходящие, краткий комментарий или еще чонить аля :
(коментарий IN: int X1 , OUT: Y2 ) или похоже...
Ну все эти подсказки выполняет IDE, которая чаще всего просто выводит на экран комментарий, написанный непосредственно перед объявлением функции.
Касаемо того, какие аргументы входящие или выходящие, можно сделать так:
C++
1
2
3
4
5
6
// где-нить в заголовочном файле, который подключается везде
#define IN
#define OUT
 
// в коде
void func(IN int x, IN int y, OUT int & z);
Фактически ни на что не влияющие символы препроцессора, а IDEшка нормальная будет выводить этот заголовок при подсказке.
Voivoid
 Аватар для Voivoid
593 / 269 / 12
Регистрация: 31.03.2013
Сообщений: 1,328
20.08.2014, 11:04     Пояснение к аргументам при вызове функции, и запрет конструктора по умолчанию #5
Цитата Сообщение от TierX Посмотреть сообщение
Например какие входящие / выходящие
Отказаться от out-аргументов, тогда ничего и помечать не надо будет
Yandex
Объявления
20.08.2014, 11:04     Пояснение к аргументам при вызове функции, и запрет конструктора по умолчанию
Ответ Создать тему
Опции темы

Текущее время: 06:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru