Potrzebuję przenieść kilka instrukcji z Javy do C. W C jestem początkujący nie znam elementów tego języka oprócz podstawowych typu funkcje, pętle itd.Załóżmy, że mam klasę w Javie o nazwie Car. I tworzę obiekt tej klasy, żeby za jego pomocą odwoływać się do funkcji z tej klasy:
Car car = new Car();
car.drive();
Jak najłatwiej zrobić odpowiednik tego w C ?
Druga sprawa to klasy abstrakcyjne i interfejsy. Mam w Javie jakiś interfejs z metodą getName(), który jest implementowany przez kilka klas. I w innej klasie mam listę/tablicę (mało istotne), w której przechowuję wszystkie klasy implementujące ten interfejs. Następnie w tej klasie wywołuję sobie pętle for i lecę po tej liście wywołując metodę getName() dla każdej klasy implementującej interfejs.
public class CP{
private final ArrayList<Namer> namers = new ArrayList<>();
public void addNamer(Namer nam) {
namers.add(nam);
}
private void printNames() {
for (Namer nam: namers) {
System.out.print(String.format("%-46s", nam.getName()));
}
System.out.println("");
}
}
public class RF implements Namer{
private String name;
@Override //metoda z interfejsu
public String getName() {
return name;
}
}
public class MainNN {
public static void main(String[] args) {
CP cp = new CP();
RF rf1 = new RF();
cp.addNamer(rf1);
cp.printNames() ;
}
}
Jak to osiągnąć w C ? Co w tym języku ma najwięcej wspólnego z klasami abstrakcyjnymi/interfejsami ? Nie potrzebuję tutaj gotowego kodu, wystarczą jakieś hasła pod którymi szukać w Google.