Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867

Нужно ли изучать "Си'шные" основы программисту на C++

26.01.2016, 15:24. Показов 2679. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Продолжение обсуждения темы: Нюансы синтаксиса: наиболее правильный способ передачи массива в функцию

Цитата Сообщение от viktimolog Посмотреть сообщение
Подскажите, пожалуйста, что считается более комильфошным, правильным: объявить указатели на массивы в main и потом передавать в функцию уже указатель?
У вас полностью сишное мышление. Сишный массив не являются типом в строгом смысле, как и сишная строка, а язык С++ является строго типизированным, и в нем недопустимо применение подобных мерзостей. Используйте std::vector или std::array.

Добавлено через 1 час 21 минуту
Вообще, очень удивляет массовое засирание этого раздела сишными недотипами (сишные массивы и строки), да и вообще сишным кодом под названием плюсового. Это наверно идет от преподавателей вузов, но тогда каково их качество, если они даже Страуструпа не читали, который этого не рекомендует.
А может быть это не от глупости, а это заговор Билла Гейтса, который, чтобы уничтожить конкурентов своего шарпея, организует вместо преподавания С++ преподавание вот такой вот фигни?
2
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.01.2016, 15:24
Ответы с готовыми решениями:

Что нужно изучать web-программисту?
Вот собственно вопрос, что необходимо знать, что бы быть более-менее сносным web-программистом? В изучение чего стоит углубиться, а на...

Для чего нужно изучать базу данных Python программисту?
Учу Пайтон уже почти как два месяца. Имею не плохие знание по нему как на свой стаж изучение. Почти прошёл свою первую книгу с которой...

С чего начать изучать основы java
Собственно хочу изучить основы java, но не знаю даже с чего начать. Знаю что есть много видов java, пк, телефоны, веб. И где искать, куда...

47
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
31.01.2016, 19:56  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от smartpointer Посмотреть сообщение
Если не предполагается изменять число элементов, нафиг не нужен вектор. Пока ваш вектор будет слоупочить со своими вызовами конструкторов, при использовании массивов - cpu уже будет обрабатывать следующую инструкцию.
Да-да, а потом появляются философские дискуссии на тему: "А массив ли это или таки указатель"? И ответ на этот философский вопрос такой же философский...
Чтобы избежать излишней философии, в плюсах есть std::array.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
31.01.2016, 20:23
Цитата Сообщение от smartpointer Посмотреть сообщение
Пока ваш вектор будет слоупочить со своими вызовами конструкторов, при использовании массивов
последние будут точно так же слоупочить с вызовами конструкторов.
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
31.01.2016, 20:27
Цитата Сообщение от hoggy Посмотреть сообщение
последние будут точно так же слоупочить с вызовами конструкторов.
кстати - да, тогда как у вектора можно память зарезервировать без помещения элементов в контейнер.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
31.01.2016, 21:05
Цитата Сообщение от Croessmah Посмотреть сообщение
у вектора можно память зарезервировать без помещения элементов в контейнер
Для изучения плюсов нужно не только С не знать. Недостижимый идеал, - вообще ничего не знать! Тогда и только тогда, можно не напрягаясь не думать о белой обезьяне(!). Да, чёрные мои браться! Аллилуйя! Плюсы нужно впитывать в девственно чистый мозг. Только так можно зарезервировать память не изгаженную не белыми ни обезьянами ни бусурманами ни прочими "манами"!
0
 Аватар для smartpointer
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
31.01.2016, 22:53
Цитата Сообщение от hoggy Посмотреть сообщение
последние будут точно так же слоупочить с вызовами конструкторов
Речь про обычные [] массивы о которых говорит Mr.X - у них нет и не может быть конструкторов.
Цитата Сообщение от IGPIGP Посмотреть сообщение
Для изучения плюсов нужно не только С не знать.
Интересно почему Страуструп до сих пор таскает сишню и легаси код в своем детище ? Неужели за 10 лет с принятием двух стандартов он так и не додумался отвязаться от C runtime. Зато активно копипастит фишечки сишки типа вариадиков и рестриктов
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
31.01.2016, 23:05
Цитата Сообщение от smartpointer Посмотреть сообщение
Речь про обычные [] массивы о которых говорит Mr.X - у них нет и не может быть конструкторов.
http://rextester.com/HUBZ90711


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//-------------------------------------------------------------------------        
//---------- кросс-платформенный макрос отображения имени функции ---------
//-------------------------------------------------------------------------        
 
#if defined(__GNUC__) || defined(__MINGW32__) || defined(__MINGW__)
    #define dFUNCTION __PRETTY_FUNCTION__
#else
    #ifdef _MSC_VER
        #define dFUNCTION __FUNCSIG__
    #else
        #define dFUNCTION __FUNCTION__
    #endif
#endif
 
//-------------------------------------------------------------------------         
//-------------------------------------------------------------------------        
//-------------------------------------------------------------------------        
 
 
#define dFIX \
    std::cout << dFUNCTION << std::endl;
 
#include <iostream>
#include <vector>
 
 
struct sample
{
    sample()noexcept              { dFIX; }
    sample(const sample&)noexcept { dFIX; }
    sample(sample&&)noexcept      { dFIX; }
};
 
int main()
{
    std::cout << "Hello, world!\n";
    
    std::vector<sample>(5, sample{} );
    
    std::cout << "=============================\n";
    
    sample arr[5];
}
а вообще конечно забавно слышать, что у массивов нет конструкторов,
учитывая, что правила едины для всех, и всех обязывают иметь конструкторы,
включая int.

тем паче, когда речь идет о составном типе,
чья инициализация - суть целая череда запусков конструкторов.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
01.02.2016, 00:03
Цитата Сообщение от smartpointer Посмотреть сообщение
обычные [] массивы о которых говорит Mr.X - у них нет и не может быть конструкторов
Когда выделяется память запускаются конструкторы по умолчанию. Перенесите в private и получите Бум!!
Цитата Сообщение от smartpointer Посмотреть сообщение
Интересно почему Страуструп до сих пор таскает сишню и легаси код
Пугает простаков. Так легче объяснить почему, это коверкает нервную ткань. И это мудро, потому как не все верят на слово. А посмотрят, - и сразу в обморок! До спинного мозга пробирает.
Сей владыка духа истины в последней инстанции повелел нам отказаться от Сей в последней инстанции духа истины! Да не дрогнет тот, чья вера сильна, а разум чист!
Не читайте это братья. Разум должен быть чист и если вы это прочли, - всё безнадёжно и ни что вам уже не поможет.
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
01.02.2016, 17:01
Цитата Сообщение от IGPIGP Посмотреть сообщение
Когда выделяется память запускаются конструкторы по умолчанию.
Скорее всего имеется в виду конструктор самого вектора, а не элементов в нём.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2016, 17:01

Дайте пару советов начинающему "Программисту": какие языки изучать
Всем привет. В программирование я совсем новичок, но после школы собираюсь идти учиться на программиста. Посоветуйте язык для начала и...

Нужно ли образование программисту
Учусь на &quot;программиста&quot; ( техник -програмист) уже на втором курсе. Только к этому времени понял что меня ничему не научат в колледже на...

Нужно ли программисту высшее образование
Всем привет ! Убедительно прошу вас сообщить мне ваше мнение о необходимости и полезности для программиста высшего образования. Дело вот в...

На сколько отличается отношение к программисту без опыта и к программисту с опытом работы в 1 год?
Здравствуйте, собственно вопрос в заголовке. Работал год за еду опыт, теперь думаю сменить работу. Знаю, что стажеров без опыта по 50 лиц...

Нужно ли Javascript - программисту уметь рисовать?
Возник у меня такой вопрос, ибо при первом знакомстве с языком обнаружил обширную связь с графикой


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

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

Новые блоги и статьи
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru