C ++のgtkmmについて学んでいます。新しいテキスト行を追加するための単純な TextBuffer を取得するのに問題があります。TextViewer (メッセージと呼ばれる) と TextBuffer (textBuffer と呼ばれる) を含む HBox である OutputBox というクラスがあります。
以下は、OutputBox クラスの小さなチャンクです。
OutputBox::OutputBox() {
textBuffer = messages.get_buffer();
};
void OutputBox::addText( string newText) {
textBuffer->insert(textBuffer->begin(), newText);
};
文字列を addText に渡すと、新しい文字列がバッファに追加されることを期待していますが、代わりに seg fault が発生します。
gdb を介して実行した後、エラーが gtkmm ライブラリから発生していることがわかります。
template <class T_CppObject> inline
T_CppObject* RefPtr<T_CppObject>::operator->() const
{
return pCppObject_;
}
これが何を言っているのかもよくわかりません。クラスを間違って使用していると思います。