Я попытался найти ответ, но не уверен, что наилучшим образом использовать его для описания...
Я читаю книгу о программировании SFML, и один из примеров меня смутил с использованием конструктора.
Допустим, что у нас есть класс A и класс B. Класс A имеет переменную-член типа B (memberB). Конструктор для A выглядит так:
A::A() : OtherMemberType(with, params), memberB()
{...}
Учитывая, что memberB инициализируется конструктором по умолчанию в списке инициализации, какова цель явного перечисления его в списке? Не был бы такой же эффект без включения его в список?
Спасибо
EDIT: Спасибо за ответы. Теперь я узнал (основную) разницу инициализации значения и инициализации по умолчанию.
Для большего контекста, поскольку идея "класс B может быть сломана, была поднята", вот пример кода из текста Разработка игры SFML:
class Game
{
public:Game();
void run();
private:
void processEvents();
void update();
void render();
private:
sf::RenderWindow mWindow;
sf::CircleShape mPlayer;
};
Game::Game()
: mWindow(sf::VideoMode(640, 480), "SFML Application")
, mPlayer()
{
mPlayer.setRadius(40.f);
mPlayer.setPosition(100.f, 100.f);
mPlayer.setFillColor(sf::Color::Cyan);
}
Итак, в этом контексте кто-нибудь знает некоторые особенности SFML? Is sf:: CircleShape "сломан", или это избыточный вызов конструктора по умолчанию?
Адам