Что это такое? Может ли кто-нибудь привести пример? Решение через указатель не подходит.
Формально, язык С++ вообще не предоставляет вам средств для явного вызова конструктора. Вызов конструктора - это всегда побочный эффект процесса инициализации. Вы, как пользователь, можете лишь инициировать процесс инициализации. Это процесс будет проходить по довольно разветвленной системе правил. И в каких-то ветках этой системы правил он может вылиться в вызов конструктора. А может и не вылиться. Управлять этим вы можете лишь косвенно - предоставляя в своем классе те или иные конструкторы и указывая тот или иной инициализатор. Средств прямого вызова конструктора в языке нет. Это относится ко всем конструкторам, в т.ч. к конструктору по умолчанию.
Наверное, единственный контекст, который можно назвать отдаленно приближающимся к "вызову конструктора" - это делегация из одного конструктора в другой в С++11... Однако нет: согласно спецификации языка, делегация конструкторов работает по общим правилам инициализации. Что, кстати, дает нам еще один баг GCC. Вот в таком коде
#include <iostream>
struct S
{
int x;
S() = default;
S(const char *) : S() {}
};
int main()
{
S s("abba");
std::cout << s.x << std::endl;
}
GCC не инициализирует s.x нулем. Clang и MSVC работают правильно. Смена инициализатора с () на {} приводит к инициализации нулем и в GCC тоже.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости