|
학교다닐때 C를 공부하긴 했었는데 포인터 구조체 그런거 개나줬던 시절이고 너무 오래되서 기억도 잘 안나고
최근엔 C# java VB써왔는데 다 비슷비슷해서 배우는데 별 문제없었기에 방심하고 있었는데 C++상당히 어렵네요 ;;;
물론 처음 보는 소스가 너무 방대하고 어려운것도 있기는 한데 이해되는 부분이 너무 적습니다 ㅠ.ㅠ...
급한대로 빨리빨리 습득해나야가기 때문에 회사에서는 질문을 못하고 가장 궁금했던 것 두가지 노트에 적어왔습니다.
1. 가장 자주보이던게 아래와같은 구조의 소스인데요
클래스A::클래스A()
:클래스Z()
이런 구조의 소스입니다. 저 콜론이 너무 생소해서 좀 시간을 투자해서 조사해 봤는데 그래도 잘 모르겠네요
::클래스A()는 클래스A의 인스턴스를 생성하면서 스트럭처로 초기화 하는게 맞나요??
지금까지 스트럭처는 거의 쓴적이 없는데 지금 보고있는 소스는 c++의 특징인지 엄청 난무하네요 ;;
그리고 :클래스Z()는 클래스Z가 클래스A를 상속받고 클래스Z의 인스턴스를 생성하는건가요???
2.
클래스B::클래스B(클래스C* pParent)
:클래스D(클래스B::IDD, pParent)
{ <----디버그할때 요기서
.......
}
위와같이 되어있는데...일단 클래스B() 괄호 안의 내용이 이해가 안가네요 T.T 클래스C* pParent가 뭘 의미하는지 모르겠습니다... 클래스C의 포인터에 pParent를 넣는건지...
클래스D()의 내용은 이해가 갑니다. IDD는 enum형식의 값(6050)이 들어있고 저것들을 인수로 클래스D를 부르더라구요.
근데 이게 진짜 중요한건데 브레이크 포인트 걸고 디버그 할때 저 {부분에서 디버깅이 시작되는데 저기서 f10 누르면...
클래스D도 클래스B도 아닌 저~~언혀 이상한 클래스로 날아갑니다. 저 {부분에서 다른 클래스로 넘어가는게 두번 있는데 두번 다 전혀 위에 써있는 클래스들과는 상관없는 다른 클래스로 넘어갑니다. 이게 클래스C*와 관계가 있는건지는 모르겠는데...거의 두시간 가까이 이부분만 반복해서 봤는데 도저히 왜 클래스B도아니고 C도아니고 D도아닌 전혀 이상한 다른 두개의 클래스로 점프하는지 모르겠습니다....
오늘 소스 본 첫날이라 두서도 없고 머리도 혼란스럽네요 ㅜ 개발자 선배님들의 조언 부탁드립니다아!
|