C++ явный конструктор, который принимает указатель
Недавно я наткнулся на явный конструктор, который получает один аргумент указателя. Интересно, нужно ли в этом случае явное ключевое слово? поскольку для указателя нет конструктора, не может быть и неявного преобразования.
class Foo {
public:
explicit Foo(int* int_ptr);
}
1 ответ
Решение
Следующий код:
void f(Foo) {}
int main()
{
int* p;
f(p);
}
Не в состоянии скомпилировать с
explicit
,Счастливо компилируется без него.