Kod ma trochę więcej błędów, wygląda jakbyś skleiła parę nagłówków, nie? W każdym razie:
Wlasciciel *wlasciciel;
...
wlasciciel->create();
Person *person;
...
person->create();
Zadeklarowałaś sobie wskaźnik na obiekt i wywołujesz metodę na wskaźniku. Ale nie masz żadnego prawdziwego obiektu pod tym wskaźnikiem, on na nic nie wskazuje.
Albo stwórz obiekt pod wskaźnikiem od razu
Person *person = new Person;
Albo gdzieś indziej
Person *person;
...
person = new Person;
Albo w ogóle nie używaj przez wskaźnik, bo w sumie nie widzę po co - chyba wystarczy zwykła zmienna lokalna:
Person person;
...
person.create();
Dodatkowa uwaga na boku:
class Person : virtual public Osoba
Nie potrzeba tu tego `virtual`. `virtual` przy klasie jest specjalne, przydatne tylko gdy klasa ma kilka klas bazowych.