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

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

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

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

24.08.2014, 13:30. Просмотров 248. Ответов 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++
помогите написать что делают строки в программе #include <iostream> #include <string> #include <cmath> using namespace std; ...

Разобрать логику работы приведенного кода - C++
Здравствуйте, уважаемые! #include <iostream> using namespace std; long brackets_balance (char * str) { long count; for...

Написать алгоритм приведенного кода - C++
Может ли кто-нибудь помочь мне с алгоритмом этого кода?, пожалуйста. #include <iostream> using namespace std; int main() {...

For each с массивом символов - выяснить причину неработоспособности приведенного кода - C++
Компилятор ругается на примерно такой код: void foo(char cArray) { for each (char c in cArray) {...} }

Первые шаги по базовому курсу Шилдта - ошибка синтаксиса приведенного кода - C++
Здравствуйте! Изучаю С++ с нуля по учебнику Базовый курс С++ Шилдт. Каждую программу из примеров компилирую на Visual Studio 2013, до сих...

Что будет выведено на экран в результате выполнения приведенного фрагмента кода? - C++
Что будет выведено на экран в результате выполнения приведенного фрагмента кода? int n = 1; while (n<=10) { if (n%2) ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
0x10
2460 / 1632 / 238
Регистрация: 24.11.2012
Сообщений: 4,015
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
2460 / 1632 / 238
Регистрация: 24.11.2012
Сообщений: 4,015
24.08.2014, 13:49 #5
Цитата Сообщение от Aspirin Посмотреть сообщение
А какой в этом смысл? Почему бы не занести в тело конструктора?
Инициализация != присваивание.
Во втором случае сначала вызвается конструктор по умолчанию, затем оператор присваиавния.
+ Константам ничего нельзя присвоить - допустима только инициализация.
Aspirin
29 / 6 / 0
Регистрация: 05.10.2012
Сообщений: 117
24.08.2014, 14:17  [ТС] #6
Вроде понял. Тогда ещё вопрос, в моем примере есть mPlayer(), т.е. вызов конструктора, а разве он не создается когда мы объявляем его в описании класса?
0x10
2460 / 1632 / 238
Регистрация: 24.11.2012
Сообщений: 4,015
24.08.2014, 14:23 #7
Aspirin, создался бы. Скорее всего, явно прописано для единообразия.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2014, 14:23
Привет! Вот еще темы с ответами:

Разобрать строку кода - C++
как детально разобраться с этой строчкой кода : cout<<((A>>i)&1);

Разобрать строку кода - C++
Часть программы, если что // Game engine struct Piece { struct { unsigned short s; } shape; int x : 8, y : 8, color :...

Помогить разобрать строчку кода! - C++
Есть такая строка: CSatelliteContainer& container = CSatelliteContainer::GetInstance();. Что делает данная строка? В ней...

Не могу разобрать часть кода. Функция strtok - C++
#include <iostream> #include <fstream> #include <conio.h> #include <string.h> void main(void) { using namespace std; ifstream...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.08.2014, 14:23
Ответ Создать тему
Опции темы

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