21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
1

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

19.08.2014, 20:04. Показов 883. Ответов 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 ) или похоже...

Например выбор обычных переменных в коде показует в подсказке их рядомстоящий коментарий...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2014, 20:04
Ответы с готовыми решениями:

Почему при вызове конструктора из конструктора нельзя передавать this как аргумент?
Есть такой код: public class Order { { } Order(){ ...

Получение объекта класса по полному имени и аргументам конструктора
Существует реализация класса для создания экземпляров объектов и пока что в нём реализован (не до...

Случайное число при вызове конструктора
class a { public int id; public a() { Random rand = new Random(); id =...

Зачем двоеточие при вызове конструктора?
Доброго времени суток, вот есть код, объясните зачем тут двоеточия при вызове конструктора? class...

4
3254 / 2056 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
19.08.2014, 20:05 2
В 14 строке - объявление функции b, не принимающей аргументов и возвращающей объект типа box.
1
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
19.08.2014, 20:09  [ТС] 3
0x10, Блин точно . Както я привык что определения функций только до main могут быть.
0
2098 / 1619 / 690
Регистрация: 27.07.2012
Сообщений: 4,853
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шка нормальная будет выводить этот заголовок при подсказке.
0
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
20.08.2014, 11:04 5
Цитата Сообщение от TierX Посмотреть сообщение
Например какие входящие / выходящие
Отказаться от out-аргументов, тогда ничего и помечать не надо будет
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2014, 11:04
Помогаю со студенческими работами здесь

Ошибка при вызове конструктора (ДвоичныеДанные)
Почему ошибка выдает Ошибка при вызове конструктора (ДвоичныеДанные) НовоеВложение.Хранилище =...

Access violation при вызове конструктора
Здравствуйте! У меня при вызове конструктора возникает ошибка. Access violation at adress...

Ошибка при вызове конструктора с параметрами
подскажите, почему при вызове конструктора с параметрами выдает ошибку сегментации ...

Что за ошибка при вызове конструктора?
Компилятор ругается на строчку внутри цикла while((c = getchar()) != '\n') { q = new...

Крашится приложение при вызове конструктора
Здравствуйте. Написал класс, а при вызове конструктора (класса Ground) приложение крашится. Где я...

Уничтожения информации в объекте класса при повторном вызове конструктора
]Подскажите, пожалуйста: есть код типа: class someClass { public: int* someArray;...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru