Итак, что у вас здесь:
class A {
B title;
}
Без определения конструктора для класса A (как показал Лучиан Григоре) заголовок будет инициализирован как: B title();
Вы можете работать так, чтовокруг:
A::A():title(B("Hello world"))
// Or by adding non parametric constructor:
class B {
B(){
}
B( const char *str){
}
}
Заголовок объекта (в документе) уже инициализирован, и вы больше не можете вызывать конструктор, но вы все равно можете использовать синтаксис: document.title(...)
, объявив и определив operator()
, но он не будетбыть конструктором:
class B {
const B& operator()(const char *str){
cout << str;
return *this;
}
}