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

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

Войти
Регистрация
Восстановить пароль
 
Aspirin
29 / 6 / 0
Регистрация: 05.10.2012
Сообщений: 117
#1

Разобрать блок приведенного кода - C++

24.08.2014, 13:30. Просмотров 240. Ответов 6
Метки нет (Все метки)

Есть код:
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
Game::Game()
: mWindow(sf::VideoMode(640, 480), "SFML Application", sf::Style::Close)
, mTexture()
, mPlayer()
, mFont()
, mStatisticsText()
, mStatisticsUpdateTime()
, mStatisticsNumFrames(0)
, mIsMovingUp(false)
, mIsMovingDown(false)
, mIsMovingRight(false)
, mIsMovingLeft(false)
{
    if (!mTexture.loadFromFile("Media/Textures/Eagle.png"))
    {
        // Handle loading error
    }
 
    mPlayer.setTexture(mTexture);
    mPlayer.setPosition(100.f, 100.f);
    
    mFont.loadFromFile("Media/Sansation.ttf");
    mStatisticsText.setFont(mFont);
    mStatisticsText.setPosition(5.f, 5.f);
    mStatisticsText.setCharacterSize(10);
}
Подскажите, что значит этот кусок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Game::Game()
: mWindow(sf::VideoMode(640, 480), "SFML Application", sf::Style::Close)
, mTexture()
, mPlayer()
, mFont()
, mStatisticsText()
, mStatisticsUpdateTime()
, mStatisticsNumFrames(0)
, mIsMovingUp(false)
, mIsMovingDown(false)
, mIsMovingRight(false)
, mIsMovingLeft(false)
{
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2014, 13:30     Разобрать блок приведенного кода
Посмотрите здесь:

C++ Помогить разобрать строчку кода!
C++ Работа с двумерным массивом - разобрать строку кода
C++ Разобрать работу приведенного кода
Что будет выведено на экран в результате выполнения приведенного фрагмента кода? C++
C++ SendMessage(hListBox, LB_GETCARETINDEX, 0, 0L). Разобрать строку кода
Первые шаги по базовому курсу Шилдта - ошибка синтаксиса приведенного кода C++
Разобрать логику работы приведенного кода C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2454 / 1626 / 238
Регистрация: 24.11.2012
Сообщений: 4,001
24.08.2014, 13:32     Разобрать блок приведенного кода #2
Member initializer list
Lucky_boy
0 / 0 / 0
Регистрация: 24.08.2014
Сообщений: 14
24.08.2014, 13:40     Разобрать блок приведенного кода #3
обычная инициализация атрибутов класса до тела конструктора
например:
C++
1
2
3
4
5
6
7
8
9
10
 
class main{
int atr1;
int atr2;
public:
main(int input);
}
main::main(int input):atr1(input),atr2(0)
{
}
здесь в конструкторе atr1 принимает значение input, a atr2 - 0
Aspirin
29 / 6 / 0
Регистрация: 05.10.2012
Сообщений: 117
24.08.2014, 13:44  [ТС]     Разобрать блок приведенного кода #4
А какой в этом смысл? Почему бы не занести в тело конструктора?
0x10
2454 / 1626 / 238
Регистрация: 24.11.2012
Сообщений: 4,001
24.08.2014, 13:49     Разобрать блок приведенного кода #5
Цитата Сообщение от Aspirin Посмотреть сообщение
А какой в этом смысл? Почему бы не занести в тело конструктора?
Инициализация != присваивание.
Во втором случае сначала вызвается конструктор по умолчанию, затем оператор присваиавния.
+ Константам ничего нельзя присвоить - допустима только инициализация.
Aspirin
29 / 6 / 0
Регистрация: 05.10.2012
Сообщений: 117
24.08.2014, 14:17  [ТС]     Разобрать блок приведенного кода #6
Вроде понял. Тогда ещё вопрос, в моем примере есть mPlayer(), т.е. вызов конструктора, а разве он не создается когда мы объявляем его в описании класса?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2014, 14:23     Разобрать блок приведенного кода
Еще ссылки по теме:

Разобрать строку кода C++
C++ For each с массивом символов - выяснить причину неработоспособности приведенного кода
Не могу разобрать часть кода. Функция strtok C++
Разобрать строку кода C++
Написать алгоритм приведенного кода C++

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

Или воспользуйтесь поиском по форуму:
0x10
2454 / 1626 / 238
Регистрация: 24.11.2012
Сообщений: 4,001
24.08.2014, 14:23     Разобрать блок приведенного кода #7
Aspirin, создался бы. Скорее всего, явно прописано для единообразия.
Yandex
Объявления
24.08.2014, 14:23     Разобрать блок приведенного кода
Ответ Создать тему
Опции темы

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