Можно создать дубликат:
What is The Rule of Three?Оценка и прохождение классов по стоимости?
Следующий код выводит мусор в лучшем случае или аварии:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
class C {
public:
char* s;
C(char* s_) {
s=(char *)calloc(strlen(s_)+1,1);
strcpy(s,s_);
};
~C() {
free(s);
};
};
void func(C c) {};
void main() {
C o="hello";
printf("hello: %s\n",o.s); // works ok
func(o);
printf("hello: %s\n",o.s); // outputs garbage
};
Мне очень интересно, почему - объект не должен даже прикасаться, потому что Im передают его по значению ...
Также, *** ПОЖАЛУЙСТА ***, воздержитесь от кодирования «C с классами» ... ПОЖАЛУЙСТА! – Xeo
@Xeo Почему он не должен? –
@James: Потому что это все, что плохо в этом мире (C++). – Xeo