Причина, по которой это важно, заключается в том, что если я хочу объявить переменную этого типа класса, еще не определив ее, мне нужен конструктор по умолчанию, чтобы не делать ничего, что зависит от чего-то еще.
< pre class="lang-cpp Prettyprint-override">
Код: Выделить всё
class Foo
{
public:
Foo()
{
m_int = 0;
// do stuff that requires a dependency to be initialized
}
void doSomething() {}
private:
int m_int;
}
class Bar
{
public:
Bar()
{
m_foo.doSomething();
}
private:
Foo m_foo; // this will run code that can't run yet since the dependency can't be initialized at compile time!
}
Решение, которое я придумал, состоит в том, чтобы просто поместить фиктивный параметр char в реальный конструктор, что я считаю глупым. Я ищу, не придумает ли кто-нибудь что-нибудь новое, что я мог бы использовать.
Подробнее здесь: https://stackoverflow.com/questions/788 ... onstructor