본문 바로가기

Programming60

python 콜스택 추적 [ 테스트 Class ] class Test: def Parent(self, data): Parent_val1 = 'pval1' Parent_val2 = 'pval2' self.Child(data) def Child(self, data): Child_val1 = 'cval1' Child_val2 = 'cval2' exec data tobj = Test() sys._getframe(n) : n단계 전의 프레임을 얻음 [*] sys._getframe(n).f_code.co_name : n단계 전의 프레임에서 함수 이름을 얻을 수 있음 ex) [*] sys._getframe(n).f_locals을 이용하여 해당 프레임의 지역 변수도 접근 가능. ex) 결과[0]locals : {'Child_val1': 'cv.. 2013. 10. 9.
C++ 상속시의 접근제어 지시자 멤버 변수에서의 접근제어 지시자의 의미는 아래와 같다. private : 클래스 내부에서만 접근가능. -> 상속시에는 멤버함수로만 접근 protected : 클래스 내부에서만 접근가능. -> 상속시에도 클래스 내부에서 접근 가능. public : 클래스 밖에서도 접근가능. 상속시에 접근제어 지시자는 접근 범위가 더 넓은 멤버를 제어하는데 사용한다. ex1) class Parent { private a; protected b; public c; } class Chlid : protected Parent { ... } 위의 경우에서 Child가 Parnet를 protected로 상속했으므로 protected보다 더 넓은 public c를 protected c로 상속한다는 의미가 된다. [*] 상속시 해당 클.. 2013. 3. 9.
C++ 상속시 생성자, 소멸자의 호출 - 상속에서 기초 클래스의 생성자와 유도 클래스의 생성자가 모두 호출된다. - 소멸자 역시 기초 클래스, 유도 클래스 둘다 호출된다. #include using namespace std; class Parent { private: int test1; public: Parent() : test1(1) { cout 2013. 3. 9.
복사 생성자 복사 생성자 객체를 인자로 받을 수 있는 생성자를 복사 생성자라고 한다. - const를 붙여 내용 변경 방지 - 복사 생성자는 &를 반드시 해줄것. ex) 복사 생성자의 정의가 필요한 경우 class Test{ private: char *mystr; public: Test(char *pstr) { mystr = new char[strlen(pstr)+1]; strcpy(mystr, pstr); } ~Test() { delete []mystr; } }; int main() { Test myobj("Hello ~~"); Test myobj2 = myobj; //또는 Test myobj2(myobj)의 경우 } 멤버 변수 mystr이 가지는 주소값만 복사될 뿐 실제 "Hello ~~"라는 문자열은 하나 밖에.. 2013. 2. 27.