|
어설픈 클래스를 만들긴 했는데요....
생성자를 오버로드를 몇개 만들긴 했는데....
캐스트 연산자를 안쓰니 제대로 돌아가질 않는군요....
class cow
{
private:
char name[20];
char * hobby;
double weight;
public:
cow();
cow(const char * nm, const char * ho, double wt); //이부분의 생성자가
cow(const cow & c);
~cow();
cow operator=(const cow & c);
void showcow();
};
cow::cow(const char * nm, const char * ho, double wt) //이겁니다.
{
strcpy(name, nm);
hobby = (char*)ho; //이렇게 쓰면 제대로 컴파일됩니다. 근데 hobby = ho; 라고 쓰면...
weight = wt;
}
제대로 컴파일이 안되고.... *hobby = *ho; 라고 쓰면 컴파일은 되는데
실행시 메모리 참조 에러가 생기는군요......
아직 포인터에 대한 이해가 모자란 걸까요......흠.....
둘다 캐릭터형 포인터인데...흠.....헷갈리네요....
좋은 답변 부탁드리고 혹시 포인터에대한 이해를 도울만한 내용을 알고 계신분은
알려주심 감사하겠습니다.
|