Можно создать дубликат:
How can I simulate OO-style polymorphism in C?C Союзы и полиморфизм
Я пытаюсь использовать союзы для создания полиморфизма в С. я делаю следующее.
typedef struct{
...
...
} A;
typedef struct{
...
...
} B;
typedef union{
A a;
B b;
}C;
Мой вопрос: как я могу есть метод, который принимает тип C, но позволяет А и B также. Я хочу, чтобы следующее работы:
Если я определить функцию:
myMethod(C){
...
}
то, что я хочу, чтобы это работало:
main(){
A myA;
myMethod(myA);
}
нет. Какие-либо предложения?
Что это значит, что «это не работает» –
Я получаю сообщение об ошибке «несовместимый тип для аргумента 1» – AFS
Что вы собираетесь делать, как только вы его скомпилируете? Вы не можете определить, является ли это A или B. –