Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867

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

26.01.2016, 15:24. Показов 2568. Ответов 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
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
[golang] Двоичная куча, min-heap
alhaos 20.05.2026
Двоичная куча Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове. Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше. . .
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru