|
멤버함수 Print 에서 객체를 사용하면 안되는 것은 ostream의 cout에서 기본 자료형은 지원하지만 사용자 정의 객체(?)는 당연히 지원을 하지 않겠죠. 지원하게 만들려면 ostream의 오버로딩된 <<연산자에 사용자정의객체를 추가 해주면 될겁니다.(아마도, 복잡하지만)
======>그럼 클래스를 만들때마다 ostream의 <<정의 해야 하쟎아요 그럼 상속을 사용할 필요 없지요 노가다 프로그램이지.
객체는 '객체.멤버' 형식으로 읽어 와야 하쟎아요 근대 기본 자료형은 다이렉트로 바로 읽어 오니 서로간에 마찰이 생깁니다. 이경우 고수님들은 어케 처리하나요?
:
: 이말은 무슨 소린지-_-ㅋ(좀 자세히 써주셨으면 좋았으련만)
======>노드는 아래와 같이 미정의 자료형입니다.
typedef struct tagNode
{ struct tagNode* m_pNext;
Type* m_pData;
} Node;
근대 Print에서는
while(node)
{ cout << *node->m_pData << endl; //요부분요
node = node->m_pNext;
}
m_pData가 미정의 자료형이므로 Type이 클래스라면 *node->m_pData.멤버 되어야 하므로 문제가 생긴다는 겁니다.
인수로 변수가 아니라 상수를 대입하니 에러가 납니다. 정말 환장합니다. C은 너져분해도 이런 문제는 없는데..... 고수님들이 이번에 안가르쳐주면 정말로 C++버려뿔까 보당 말만 객체 지향이지 배워서 써먹으려면 꼭 저런씩으로 사람 속을 팍 팍 뒤집어 버리네..... 교수들은 뭐하나 몰라 돈만 받아 먹고 저런것도 안가르쳐주고..... 아이참 신경질나..... 이건 베이직보다 더하다 더해.....
==========>벌써 졸업 해버렸고요 요즘은 교수님한테 전화하면 이상한 여자가 받아요 그 아가씨 말이 얼마전에 휴대폰 구입했대요.....
CList class의 멤버함수들가 인수를 전달할 때 참조형을 쓰고있지요. 그런데 1, 2, 3 등의 상수는 변수가 아니라 참조를 할 수가 없어서 컴파일 시간 에러가 나는 거지요~
==============>옛날에 교수님께서 클래스는 함수의 인수로 넘기지 말라고 했어요 왠만하면 참조자나 포인터로 넘기라고요 님이 생각해도 포인터를 사용해도 제 경우처럼 상수를 사용하면 에러가 나쟎아요.
박성근 님이 쓰신 글 :
: 대강 아는 것만 말씀드리겠습니다.. (솔직히 아는게 별로 없어서~)
:
: :위와 같이 template을 이용해서 프로그램을 만들었습니다. 근대 멤버함수 Print에서 m_pData가 기본 자료형일때는 잘 동작하는데 객체(클래스)일때는 처리가 곤란합니다.
:
: 멤버함수 Print 에서 객체를 사용하면 안되는 것은 ostream의 cout에서 기본 자료형은 지원하지만 사용자 정의 객체(?)는 당연히 지원을 하지 않겠죠. 지원하게 만들려면 ostream의 오버로딩된 <<연산자에 사용자정의객체를 추가 해주면 될겁니다.(아마도, 복잡하지만)
:
: :객체는 '객체.멤버' 형식으로 읽어 와야 하쟎아요 근대 기본 자료형은 다이렉트로 바로 읽어 오니 서로간에 마찰이 생깁니다. 이경우 고수님들은 어케 처리하나요?
:
: 이말은 무슨 소린지-_-ㅋ(좀 자세히 써주셨으면 좋았으련만)
:
: :그라고 이건 왜또 작동을 안하나요
: : list.Insert(1);
: : list.Insert(2);
: : list.Insert(3);
: : 인수로 변수가 아니라 상수를 대입하니 에러가 납니다. 정말 환장합니다.
:
: CList class의 멤버함수들가 인수를 전달할 때 참조형을 쓰고있지요. 그런데 1, 2, 3 등의 상수는 변수가 아니라 참조를 할 수가 없어서 컴파일 시간 에러가 나는 거지요~
:
: :C은 너져분해도 이런 문제는 없는데..... 고수님들이 이번에 안가르쳐주면 정말로 C++버려뿔까 보당 말만 객체 지향이지 배워서 써먹으려면 꼭 저런씩으로 사람 속을 팍 팍 뒤집어 버리네..... 교수들은 뭐하나 몰라 돈만 받아 먹고 저런것도 안가르쳐주고..... 아이참 신경질나..... 이건 베이직보다 더하다 더해.....
:
: 객체 지향 프로그래밍 방식은 c++에서뿐만 아니라 다른 언어에서도 많이 쓰이고 있지요. 개념을 확실히 알고 넘어가면 나중에 고생을 안합니다. 그리고 교수님은 열심히 배우려고 하지 않는 학생들에게는 잘 안가쳐주거든요. 악착같이 매달리면서 배우세요~ 그래도 교수님이 가장 가까운 고수일텐데요~
:
: 죄송합니다. 대강 아는 한도 내에서 대답해 드렸습니다..
|