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

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

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

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

19.08.2014, 20:04. Просмотров 390. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2014, 20:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пояснение к аргументам при вызове функции, и запрет конструктора по умолчанию (C++):

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

Ошибка при вызове конструктора с параметрами - C++
подскажите, почему при вызове конструктора с параметрами выдает ошибку сегментации #include&lt;math.h&gt; #include&lt;stdio.h&gt; ...

Крашится приложение при вызове конструктора - C++
Здравствуйте. Написал класс, а при вызове конструктора (класса Ground) приложение крашится. Где я облажался? class Plate { ...

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

Класс - Ошибки при вызове методов: В вызове функции отсутствует список аргументов - C++
Добрый вечер всем! При изучении и написании работы столкнулся с ошибкой от которой не могу избавиться. (Т.к. очень сильно плаваю в ООП)....

Ошибка при перегрузка конструктора. Родительский объект инициализирует поле по умолчанию - C++
простейший объект field с двумя полями int является полем класса Capp. поле с типом field создается и конструируется по умолчанию без...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
19.08.2014, 20:05 #2
В 14 строке - объявление функции b, не принимающей аргументов и возвращающей объект типа box.
1
TierX
20 / 20 / 0
Регистрация: 28.02.2014
Сообщений: 138
19.08.2014, 20:09  [ТС] #3
0x10, Блин точно . Както я привык что определения функций только до main могут быть.
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 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шка нормальная будет выводить этот заголовок при подсказке.
0
Voivoid
675 / 278 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
20.08.2014, 11:04 #5
Цитата Сообщение от TierX Посмотреть сообщение
Например какие входящие / выходящие
Отказаться от out-аргументов, тогда ничего и помечать не надо будет
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2014, 11:04
Привет! Вот еще темы с ответами:

при вызове конструктора присваивания надо возвращать ссыль на объект или сам объект. Смысл? Значения нужных полей меняютмся и без этого! - C++
Друзья! Обнаружил пробел в знаниях. Собсно, вопрос в теме. Дополню лишь: поля объекта меняются на нужные значения и безо всякого возврата...

При вызове конструктора ошибка: L "Buffer is too small" & & 0 - C++
Привет. При вызове конструктора вылетает эта ошибка. Student(char *n, char *s, char *p, int y, char *g) { name = new char;...

Какие нюансы в вызове виртуальных функций из конструктора и из деструктора? - C++
Данный вопрос взят с перечня вопросов на собеседование, смысл мне не совсем понятен, вот и решил его задать тут. Может кто понял суть...

Файл: Вычисления значений заданной функции по аргументам из файла - C++
Надо помощь в написании небольшой программы, только начал работать с файлами в консоли. нужно решить задачу: Створити текстовий файл...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.08.2014, 11:04
Ответ Создать тему
Опции темы

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