Ответы пользователя по тегу ООП
  • Как создать универсальные переменные в C#?

    @Beltoev
    Живу в своё удовольствие
    Используйте массивы или списки.

    static void Main(string[] args)
    {
       List<ID> persons = new List<ID>{
          new ID("Гомер Симпсон", 120, "Спрингфилд", "Homer", "Donuts", 20, 4),
          new ID("Мамин Симпатяга", 40, "Маминск", "Simpa98", "maman", 25, 3),
          new ID("Папин Бродяга", 65, "Папинск", "CoolGuy", "pahan", 50, 2),
       };
       ...
       // Дальше в методы передавайте всего одну переменную persons
    }
    Ответ написан
    1 комментарий
  • Похоже ли это на ООП в Си?

    @Beltoev
    Живу в своё удовольствие
    Как бы структура в С++ - это своего рода класс с публичными полями и методами, в то время, как в Си структура может иметь только поля.

    Но если хотите поизвращаться, то можно внутри структуры хранить ссылки на функции, а уже их вызывать как методы (правда, первым параметром нужно будет саму структуру передавать).

    Например, вырву кусок кода из вашего листинга:
    typedef struct {
    	// какой-то код
    	// указатель на функцию - "метод" класса
    	void (*start)(struct app*);
     } App;
    
     void app_start(App *app)
     {
    	// какой-то код
     }
    
     App *app_new(void)
     {
    	// какой-то код
    	// собственно, задаем адрес функции
    	app->start = &app_start;
    
     	return app;
     }
    
    int main(void)
    {
    	App *app = app_new();
    	// Вуаля - вызываем как метод класса
    	app.start(&app);
    	return 0;
    }
    Ответ написан
    Комментировать