Нам дали задание в нашем классе программирования на C, чтобы изменить программу, чтобы она стала более объектно-ориентированной.Частично это было для исправления метода toString.Направления были:
Modify the Student module to make it more object-oriented.
* Each Student object should have a function pointer that points to an
appropriate function for producing a string representation of the object.
* Provide a default toString method to each object when it is created.
The studentToString method should no longer be part of the Student interface
(as defined in Student.h)
Однако мы не совсем уверены, что это значит, и хотели бы знать, находим ли мы на правильном пути с тем, что мы должны делать.Вот код из файла Student.c:
#include <stdio.h>
#include <stdlib.h>
#include "Student.h"
#include "String.h"
static void error(char *s) {
fprintf(stderr, "%s:%d %s\n", __FILE__, __LINE__, s);
exit(1);
}
extern Student newStudent(char *name, int age, char *major) {
Student s;
if (!(s = (Student) malloc(sizeof(*s))))
error("out of memory");
s->name = name;
s->age = age;
s->major = major;
return s;
}
extern char *studentToString(Student s) {
const int size = 3;
char age[size + 1];
snprintf(age, size, "%d", s->age);
char *line = newString();
line = catString(line, "<");
line = catString(line, s->name);
line = catString(line, " ");
line = catString(line, age);
line = catString(line, " ");
line = catString(line, s->major);
line = catString(line, ">");
return line;
}
Мы знаем, что метод * studentToString будет заменен методом * toString, и мы думаем, что метод * toString будет иметь то же содержимое, что и метод* Метод studentToString.Но мы не понимаем, как это делает его более объектно-ориентированным.Мы также определили, исходя из указаний, что при создании нового объекта Student у нас должен быть указатель в методе newStudent, который указывает на новый метод toString.
Мы не ищем, чтобы кто-либо делалпрограмма для нас.Мы просто хотим понять, что мы должны делать, поскольку нашего профессора не было в городе неделю.Любая помощь будет принята с благодарностью.