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

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

Войти
Регистрация
Восстановить пароль
 
noddoh
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 11
#1

Поясните пожалуйста что означает двоеточие и то что идет после него - C++

24.01.2014, 22:33. Просмотров 1194. Ответов 4
Метки нет (Все метки)

В 4 строчке после параметра в скобочках нету ";" или же тела функции, что не сходится с моим шаблоном в голове. Поясните пожалуйста что означает двоеточие и то что идет после него (в общем виде, а не конкретный пример).

C++
1
2
3
4
5
6
7
8
class MyClass {
    public:
        MyClass(){}
        MyClass(int i) : m_i(i) {}
 
        private:
        int m_i;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2014, 22:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поясните пожалуйста что означает двоеточие и то что идет после него (C++):

Что означает двоеточие в наследовании конструктора? - C++
При изучении ООП в рамках языка c++ столкнулся с интересной формой обьявления конструктора объекта: classname(int A, int B, int C) :...

Что означает двойное двоеточие в коде - C++
Что в с++ значит вот это ::

Что означает двойное двоеточие в vector<int>::iterator it ? - C++
Никак не могу понять как взаимоувязаны две сущности: контейнеры и итераторы. vector&lt;int&gt;::iterator it; Если бы это было...

скажите пожалуйста, что означает здесь b. ,это какия-либо функция или что? - C++
скажите пожалуйста, что означает здесь b. ,это какия-либо функция или что? //анализируем все клетки доски for(int i = 0; i &lt; 8;...

Пожалуйста подскажите, что означает оператор! - C++
Доброго времени суток. Перевожу Сишный исходник в Делфи и столкнулся с такой строкой v5 = **(_DWORD **)v6-&gt;h_addr_list; Подскажите...

Пожалуйста объясните Что означает каждая строчка - C++
Что означает каждая строчка, объясните кому не трудно, а то ничего не понятно: 1) char *s = new char ; cout&lt;&lt;&quot;Vvedite slovo&quot;&lt;&lt;endl; ...

4
MrGluck
Модератор
Эксперт CЭксперт С++
7423 / 4538 / 673
Регистрация: 29.11.2010
Сообщений: 12,319
24.01.2014, 22:35 #2
Когда мы объявляем прототип функции, то пишем ;
Когда совмещаем объявление и реализацию, то ; писать уэе не нужно.
Здесь второй вариант.
0
Убежденный
Ушел с форума
Эксперт С++
15690 / 7200 / 1138
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
24.01.2014, 22:37 #3
Такая запись - это называется список инициализации конструктора.
Например:
C++
1
2
3
4
struct foo
{
     int Value;
};
В конструкторе foo член Value можно проинициализировать по-разному.
Можно так:
C++
1
2
3
4
foo()
{
    Value = 123;
}
А можно так:
C++
1
2
3
foo() : Value(123)
{
}
Аналогичным образом можно инициализировать ссылки, константы и
подобъекты базовых классов. Точнее говоря, это единственный способ
их инициализации.
1
noddoh
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 11
24.01.2014, 22:45  [ТС] #4
Спасибо, тема закрыта
0
MrGluck
Модератор
Эксперт CЭксперт С++
7423 / 4538 / 673
Регистрация: 29.11.2010
Сообщений: 12,319
24.01.2014, 22:52 #5
В дополнении к прошлому ответу:
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
#include <iostream>
 
struct B
{
    B()    { std::cout << "B()\n"; }
    B(int) { std::cout << "B(int)\n"; }
    B& operator= (const B &) { std::cout << "B.operator=\n"; return *this; }
 
 
};
 
struct A
{
    A() : b(1) {}
    A(int)
    {
        b = 1;
    }
    B b;
};
 
int main()
{
    A a1;
    A a2(1);
}
Добавлено через 18 секунд
На больших объектах это обойдется весьма дорого.
1
24.01.2014, 22:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2014, 22:52
Привет! Вот еще темы с ответами:

Объясните пожалуйста что означает произвольная RSH - C++
Мне задали написать программу &quot;Реализация симплекс метода с произвольной RHS&quot;. Симплекс метод понятен, а RHS не знаю что такое. З.Ы...

Что означает тип переменной после new? - C++
Добрый день! Подскажите, пожалуйста. Есть код создания памяти для переменной. Например int*name=new int; Что означает тип переменной...

Что означает выражение стоящее после return? - C++
Всем привет. Довольно часто в уроках по c++. Вижу после написания программы либо функциии. return переменная; Что это значит? ...

Что означает const после круглых скобок функции - C++
всем привет. скажите, а что здесь значит const? int func(int var) const { return get; }


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

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

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