reply_form::reply_form()
{
using cppcms::locale::translate;
author.message(translate("Author"));
comment.message(translate("Comment"));
send.value(translate("Send"));
*this + author + comment + send;
author.limits(1,64);
comment.limits(1,256);
}
В данном определении конструктора кто-нибудь, пожалуйста, объясните, что означает этот синтаксис или его предполагаемое использование и преимущества:
*this + author + comment + send;
Мне кажется, что это конкатенация / сложение, которое выполняется без привязки к чему-либо, и это действительно смущает меня, так как я не могу понять его цель.
Я провел хороший поиск в сети с этой проблемой, но, вероятно, я не использую правильный термин для его поиска, так как не знаю, как именно этот тип синтаксиса называется.
Мне кажется, что это часть последних функций C ++ 1x, но я не уверен, поэтому не могу найти для него нужную книгу. Наконец выбрал stackoverflow для спасения: -)
EDIT:
Самое важное, что я мог бы предоставить, - это объявление в заголовочном файле:
struct reply_form : public cppcms::form {
cppcms::widgets::text author;
cppcms::widgets::textarea comment;
cppcms::widgets::submit send;
reply_form();
};
EDIT2: Revision2 (снова исправлено после проверки комментариев)
Хорошо, я смог отследить оператор + вещь и выяснил, как она была перегружена:
inline form &operator + (form &f)
{
add(f);
return *this;
}
Так что это был случай перегрузки оператора. Спасибо за Ваш ответ. Я был недавно перенесен на C ++ и обнаружил некоторые странные вещи, как я разместил в этой теме:
Объясните пустые функции класса в C ++ , которые мне показались как многофункциональный список с пустым телом, но позже я понял это как синтаксис и способ объявления переменной или вызова конструктора базового класса.
Спасибо за ваши ответы, это было очень полезно и очень быстро!