Извините, я не смог придумать лучшего названия после того, как во время экспериментов столкнулся со следующим фрагментом кода.
Чего я здесь не понимаю, так это того, как я мог вызвать функцию класса, используя в этом случае nullptr.
#include <memory>
#include <iostream>
using namespace std;
class test {
public:
void testfunc() {
cout << "calling test func" << endl;
}
};
int main () {
unique_ptr<test> ptr;
if (ptr == nullptr) {
cout << "ptr is null" << endl;
}
ptr->testfunc();
return 0;
}
По моему мнению, это должно просто рухнуть, потому что это nullptr, но это не так и работает так, как будто ptr не является nullptr.