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

Какие соглашения действуют в C++? - C++

Восстановить пароль Регистрация
 
 
Gouvere
 Аватар для Gouvere
19 / 19 / 3
Регистрация: 25.11.2013
Сообщений: 122
09.08.2014, 15:37     Какие соглашения действуют в C++? #1
Например, в PHP следующие соглашения наименования:
  • Имена классов с большой буквы (SomeClass)
  • Имена переменных с маленькой буквы (some_var)
  • Имена функций с маленькой буквы (someFunction)

А какие соглашения действуют в C++?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2014, 15:37     Какие соглашения действуют в C++?
Посмотрите здесь:

Определить, какие из этих имен встречаются во всех классах, какие есть хотя бы в двух классах, и какие - только в одном классе C++
C++ Спрашивается, каков будет счет в конце игры, если оба игрока действуют оптимально.
C++ Какие книги есть по Си++?
C++ Почему операторы инкремента действуют по разному для стандартных и нестандартных типов?
C++ Какие ошибки в коде?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
09.08.2014, 15:40     Какие соглашения действуют в C++? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Единых для всех - нет.
Можно посмотреть на существующие. Первые, которые вспоминаются:
http://google-styleguide.googlecode....k/cppguide.xml
http://qt-project.org/wiki/Qt_Coding_Style
KOPOJI
Модератор
 Аватар для KOPOJI
16243 / 6454 / 390
Регистрация: 12.06.2012
Сообщений: 19,362
09.08.2014, 15:44     Какие соглашения действуют в C++? #3
Цитата Сообщение от Gouvere Посмотреть сообщение
Например, в PHP
например, в PHP их тоже несколько. И переменные по одному из соглашению тоже обозначаются в camelCase, как функции. А то, как вы написали переменные обозначаются в C, Ruby и т.п.

Добавлено через 1 минуту
вот "зендовские" соглашения по пыху http://www.zendframework.com/manual/...nventions.html
gru74ik
Модератор
 Аватар для gru74ik
3131 / 1357 / 168
Регистрация: 20.02.2013
Сообщений: 3,877
Записей в блоге: 18
09.08.2014, 15:51     Какие соглашения действуют в C++? #4
90 рекомендаций по стилю написания программ на C++
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.08.2014, 15:54     Какие соглашения действуют в C++? #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Gouvere Посмотреть сообщение
Например, в PHP следующие соглашения наименования:
Имена классов с большой буквы (SomeClass)
Имена переменных с маленькой буквы (some_var)
Имена функций с маленькой буквы (someFunction)
А какие соглашения действуют в C++?
c++ признаёт только соглашения о вызовах, всё остальное - стиль конкретного программиста, или команды разработчиков.
Убежденный
Системный программист
 Аватар для Убежденный
14221 / 6236 / 988
Регистрация: 02.05.2013
Сообщений: 10,406
Завершенные тесты: 1
09.08.2014, 16:43     Какие соглашения действуют в C++? #6
Цитата Сообщение от Gouvere Посмотреть сообщение
А какие соглашения действуют в C++?
В С++ нет единых официальных рекомендаций по поводу оформления кода.
Тут все решается на уровне корпоративных правил в организации, в
которой вы работаете. Главное - писать так, чтобы всем было понятно, и
чтобы у читающих не возникало зрительных затруднений, даже минимальных,
при нахождении таких вещей, как, например, определение, к какому блоку
относится закрывающая фигурная скобка.
Gouvere
 Аватар для Gouvere
19 / 19 / 3
Регистрация: 25.11.2013
Сообщений: 122
09.08.2014, 16:55  [ТС]     Какие соглашения действуют в C++? #7
Всем спасибо)
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16846 / 5267 / 323
Регистрация: 30.03.2009
Сообщений: 14,173
Записей в блоге: 26
09.08.2014, 18:26     Какие соглашения действуют в C++? #8
Самый лучший стиль - это тот, который принудительно навязало начальство. В этом случае разработчики не тратят время на бесполезные споры по поводу стиля
gru74ik
Модератор
 Аватар для gru74ik
3131 / 1357 / 168
Регистрация: 20.02.2013
Сообщений: 3,877
Записей в блоге: 18
09.08.2014, 18:28     Какие соглашения действуют в C++? #9
Цитата Сообщение от Убежденный Посмотреть сообщение
Главное - писать так, чтобы всем было понятно, и
чтобы у читающих не возникало зрительных затруднений, даже минимальных,
при нахождении таких вещей, как, например, определение, к какому блоку
относится закрывающая фигурная скобка.
++очень_много;

Сравните, к примеру, две записи одного и того же кода:

Кликните здесь для просмотра всего текста

Первый вариант:
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
#include<conio.h>
#include <cmath>
#include<iostream>
#include <stdio.h>
 
 
using std::cout;
using std::cin;
using std::endl;
 
 
void main()
 {
         cout << "Input n,m: ";
         int n,m,n1;      int MassVseTsisla[100]; int VseTsisla; VseTsisla=0;
   cin >> n >> m; cin.get();
   n1=n;
    int Massiv[100];int Stsotsik;  Stsotsik=0;
 
   Idisuda: for (;  n!=0||n>0;  Stsotsik++)
        {Massiv[Stsotsik] = n%10; n/=10;}
      int Summa; Summa=0;
      for (Stsotsik;  Stsotsik!=0||Stsotsik>0;  Stsotsik--) 
          {Summa=Summa+Massiv[Stsotsik];}
   Summa=Summa*Summa;
        if ( Summa==m ) {MassVseTsisla[VseTsisla]=n1;n=n1-VseTsisla;
                     VseTsisla++;
                     if (n>0)goto Idisuda;}
 
    for (VseTsisla;VseTsisla>=0;VseTsisla--){cout<< VseTsisla << "Znatsenie" <<MassVseTsisla[VseTsisla]<< endl;}
    cin.get();
 
 }

Второй вариант:

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
44
45
46
47
48
49
50
51
#include <conio.h>
#include <cmath>
#include <iostream>
#include <stdio.h>
 
 
using std::cout;
using std::cin;
using std::endl;
 
 
void main()
{   
    int n, m, n1;
    cout << "Input n, m: ";
    cin >> n >> m;
    cin.get();
    int arrAllNumbers[100]; // массив всех чисел
    int allNumbers = 0;
    n1 = n;
    int arr[100];
    int counter = 0;
    oneMoreTime:
    
    for (; n != 0 || n > 0; counter++)
    {
        arr[counter] = n%10;
        n /= 10;        
    }
 
    int summ = 0;
      
    for (counter; counter != 0 || counter > 0; counter--) 
        summ = summ + arr[counter];
        
    summ = summ * summ;
    
    if (summ == m)
    {
        arrAllNumbers[allNumbers] = n1;
        n = n1 - allNumbers;
        allNumbers++;
            if (n > 0)
                goto oneMoreTime;
    }
 
    for (allNumbers; allNumbers >= 0; allNumbers--)
        cout<< allNumbers << " value " << arrAllNumbers[allNumbers] << endl;
    
    cin.get();
 }
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,698
09.08.2014, 19:33     Какие соглашения действуют в C++? #10
Цитата Сообщение от gru74ik Посмотреть сообщение
C++
1
2
3
using std::cout; 
using std::cin; 
using std::endl;
М-да, забавно видеть эти штуки в теме о стиле программирования.
zss
Модератор
Эксперт С++
 Аватар для zss
5956 / 5561 / 1788
Регистрация: 18.12.2011
Сообщений: 14,210
Завершенные тесты: 1
09.08.2014, 19:41     Какие соглашения действуют в C++? #11
Это тоже забавно:
Цитата Сообщение от gru74ik Посмотреть сообщение
counter != 0 || counter > 0
Для операции "или" достаточно выполнения первого условия,
поэтому при counter<0 выражение истинно!
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.08.2014, 20:13     Какие соглашения действуют в C++? #12
Что самое интересное, при counter>0 тоже сработает первое условие и до второго даже не дойдёт. Если же первое ложно, то второе тоже.
Gouvere
 Аватар для Gouvere
19 / 19 / 3
Регистрация: 25.11.2013
Сообщений: 122
09.08.2014, 20:49  [ТС]     Какие соглашения действуют в C++? #13
Цитата Сообщение от Mr.X Посмотреть сообщение
М-да, забавно видеть эти штуки в теме о стиле программирования.
Скажите, почему эти штуки так вредны?
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,698
09.08.2014, 21:14     Какие соглашения действуют в C++? #14
Цитата Сообщение от Gouvere Посмотреть сообщение
Скажите, почему эти штуки так вредны?
А зачем они?
gru74ik
Модератор
 Аватар для gru74ik
3131 / 1357 / 168
Регистрация: 20.02.2013
Сообщений: 3,877
Записей в блоге: 18
10.08.2014, 00:40     Какие соглашения действуют в C++? #15
Я, кстати, реально не понимаю ломаний копий на тему использования директивы using новичками в программах из 30-40 строк. Чего там может "пойти не так"?
Особенно, учитывая тот факт, что во всех вменяемых учебниках есть оговорки на этот счёт, дескать, делаем так, только пока "мы маленькие".
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
10.08.2014, 07:04     Какие соглашения действуют в C++? #16
Цитата Сообщение от gru74ik Посмотреть сообщение
Чего там может "пойти не так"?
У начинающих и в 30 строках могут начаться проблемы. Пример с using namespace - Глобальные переменные
Если же все идет хорошо, то продолжают на автомате лепить эти директивы везде, в том числе в заголовочные файлы, рано или поздно наступая на грабли.
Gouvere
 Аватар для Gouvere
19 / 19 / 3
Регистрация: 25.11.2013
Сообщений: 122
10.08.2014, 07:58  [ТС]     Какие соглашения действуют в C++? #17
Mr.X, я понимаю, что при использовании using namespace могут возникнуть конфликты имен. Но когда я выбираю из пространства лишь тройку имен, при этом запоминая, что эти имена уже заняты, ничего страшного здесь нет. Это же лучше чем каждый раз писать std:
C++
1
std::cout << "Hello" << std::endl;
или
C++
1
cout << "Hello" << endl;
Конечно, это не всегда правильно, но выбирать часто используемые имена - в этом нет ничего плохого.

Или же я чего-то не понимаю?
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,698
10.08.2014, 08:06     Какие соглашения действуют в C++? #18
Цитата Сообщение от Gouvere Посмотреть сообщение
Это же лучше чем каждый раз писать std:
std::cout << "Hello" << std::endl;
или
cout << "Hello" << endl;
А чем лучше?
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
10.08.2014, 08:24     Какие соглашения действуют в C++? #19
Цитата Сообщение от Gouvere Посмотреть сообщение
Или же я чего-то не понимаю?
До тех пор пока ты приводишь примеры из стандартной библиотеки, все кажется простым и понятным - частоиспользуемые имена легко запомнить.
Проблемы начинаются с чтением более крупных проектов, где есть N своих пространств имен. Встречая идентификатор без префикса, первая же мысль - определение локально. И становится большим сюрпризом, если фактически оно из какой-то другой библиотеки, которая в своем заголовочном файле добавляет имя в глобальную область.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2014, 08:40     Какие соглашения действуют в C++?
Еще ссылки по теме:

Какие ошибки в коде? C++
C++ Выяснить, какие из прямых параллельны, а какие - нет
C++ Имя соглашения о вызове функции

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

Или воспользуйтесь поиском по форуму:
Gouvere
 Аватар для Gouvere
19 / 19 / 3
Регистрация: 25.11.2013
Сообщений: 122
10.08.2014, 08:40  [ТС]     Какие соглашения действуют в C++? #20
Mr.X, меньше кода и выглядит красивее)
Yandex
Объявления
10.08.2014, 08:40     Какие соглашения действуют в C++?
Ответ Создать тему
Опции темы

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