Почему выполняется следующая работа?Передача указателя на функцию ref ref
#include <iostream>
using namespace std;
class PolyLine {
public:
PolyLine() = default;
PolyLine(PolyLine * ptr) {
std::cout << "Ctor called" << std::endl;
}
};
void function(const PolyLine& pt) {
}
int main() {
PolyLine *pobj = new PolyLine();
function( pobj);
return 0;
}
Кажется, что неявное преобразование каким-то образом вызвано .. почему я не получаю ошибку компиляции?
'почему я не получаю компиляции error' Почему вы ожидаете ошибку? – user657267
Вы определили неявное преобразование, и компилятор использует это преобразование. Не удивительно. – Suma
Вам не хватает 'delete pobj;' в конце main. Либо исправьте это, либо измените определение pobj на это: 'PolyLine pobj;' –