Я пишу строковую структуру следующим образом.
typedef struct string string;
struct string
{
int length;
char* content;
void (*init)(string*, const char*);
void (*print)(string*);
};
void print(string* a)
{
printf("%s", a->content);
}
void init(string* a, const char* b)
{
a->init = init;
a->print = print;
a->length = strlen(b);
a->content = (char*)malloc(sizeof(char) * strlen(b));
strcpy(a->content, b);
}
int main()
{
string a;
init(&a, "Hello world!\n");
a.print(&a);
}
Я пытался подражать ooc здесь, но я не могу найти лучший способ.Например, есть ли возможный способ сделать print (& a) похожим на: a.print, не передавая указатель на себя на функцию, как неявный * этот указатель делает на другом языке?