svbelov51: О, я придумал. Если вам можно создавать объекты позже, при необходимости, используйте паттерн фабрика. Передавайте id типа в виде числа или строки в тот код, который не должен знать о реализации Holder. А потом запрашивайте у фабрики экземпляр по нему.
Ну и onSendButtonClicked сейчас особо ничего не делает. Просто сохраняет текст в локальной переменной. Чтобы увидеть какой-то эффект, для отладки, напишите print sql например.
Продление срока жизни константной ссылкой может работать только внутри одной функции. Этот код работает потому что "везет" пока. Поскольку локальные переменные создаются на стеке, у них нет шансов пережить функцию. Вызов любой следующей функции перетрет их.
vvafree: Треугольник можно хранить не как массив всех точек а как координаты трех вершин. Как проверить что точка внутри -- простая геометрия, гуглится легко.
MaM: К этому: "Итератор возвращает мне по оператору & объект?"
for(<тип><имя переменной> : контейнер)
Как я сказал раньше & тут не оператор а просто часть имени типа.