프로그래밍/C++ 스피비 2011. 3. 21. 14:12
0.들어가기에 앞서 static 로 선언된 변수나 함수는 정적메모리 영역에 들어간다. 그렇기때문에 스택메모리와 전혀 상관없다!!! 이 말이 무슨말인지 모르겠다면... 메모리 영역 공부 다시하고 와야할듯! 1.정적멤버변수 class 안에서 static 정적멤버변수를 선언하면 외부에서 :: 범위연산자를 이용해서 초기화를 꼭 해줘야한다. 이유는 모든 객체가 공유하는 변수기 때문에 객체가 주체가 아니고 클래스가 주체이다. 그래서 또하나의 특징인 객체가 인스턴스화 되지않아도 호출하여 사용할수 있다.(객체가 생성되기 이전에 생성됨) 보통 파일을 나눠서 할 경우 cpp파일에 초기화하는게 좋다( 이유는 h파일은 두번 참조될수!도 있기때문) 2.정적멤버함수 정적멤버함수도 마찬가지로 객체를 호출하지않고 ::범위연산자만으로..
프로그래밍/C++ 스피비 2011. 3. 21. 13:54
class 상속중에 구현상속과 인터페이스 상속이라는 말이 존재한다. 이것은 어떤의미냐하면, 1. 구현 상속이란 객체의 구체적인 동작(data)만 재사용할 수 있고 인터페이스는 물려받지 않는 상속이며 좀 더 구체적으로 얘기하자면 멤버 함수를 호출할 수는 있지만 스스로 멤버 함수를 가지지는 않는 상속이다. 즉. 함수는 물려받지 않고 코드만 물려받는 상속을 구현 상속 2. 인터페이스 상속은 객체의 구체적인 동작뿐만 아니라 인터페이스까지 상속하는것을 말한다. 즉, 상속받은 객체에서 함수를 외부호출 할 수 있다는 것을 의미한다 3. 순수가상함수: 인터페이스, 즉 멤버 함수의 목록만 상속받고 구현은 전혀 상속받지 않는 순수 가상 함수라는 방법도 있다 기법 private 상속, 포함 public 상속 순수 가상 함수..
프로그래밍/C++ 스피비 2011. 3. 21. 12:44
friend 키워드 정리 * 사용할수있는 곳? : 전역변수, 멤버함수, 클래스 * 특성: 1. 프렌드 지정은 단방향이며 명시적으로 지정한 대산만 프렌드가 된다.(안습...) 2. 프렌드 지정은 전이 되지 않으며 친구의 친구관계는 인정하지 않는다. 3, 복수의 대상에 대해 동시에 프렌드 지정을 할 수 있지만 한 번에 하나씩만 가능하다. 4. 프렌드 관계는 상속되지않는다. 프렌드는 OOP의 정보 은폐 원칙에 대한 일종의 예외이다. 숨겨 놓은 정보를 읽기 위해 일일이 액세스 함수를 경유하는 것이 너무 불편하고 때로는 외부 함수가 내부 멤버를 액세스해야 하는 불가피한 경우가 있어 프렌드가 반드시 필요하지만 너무 빈번하게 사용하는 것은 좋지 않다
프로그래밍/C++ 스피비 2011. 3. 21. 12:37
아무리 서치해도 안나오길래 그냥 내가 정리해본다. 내가 배운것내에서 정리한것이라 더 있을지도 모른다. 아니 분명 더 있을것같다. C++공부하면서 operator 키워드를 사용하는 부분에대해 정리해본다^^ operator 키워드 1. 연산자 오버로딩에 쓰인다. (클래스 내에서 사용) int operator +() { } // 이런식으로 함수이름을 대신에 (operator 기본연산자)가 들어간다^^ // 중요한것은 연산자오버로딩은 기본연산자만 가능하다는것! // 이유는 다른것까지 오버로딩시켜서 정의해버리면 의미가 직관적이지 못하기때문에 // 자세한것은 www.winapi.com을 참고하라 2. 변환함수에 쓰인다. ( 클래스 내에서 사용 ) operator 기본타입() { } // 이런식으로 리턴값도 없고 인..
프로그래밍/C++ 스피비 2011. 3. 21. 12:21
일단 어려운 단어가 나왔다고 쫄지 말자. 변환시리즈 즉 변환연산자와 변환함수는 변환을 시켜주는 생성자와 함수이다. 정의를 들어가기전에 언제나 그렇듯이 프로그래밍언어는 뒤에 강세를 두고 읽으면 좀 쉽다. 변환생성자는 결국은 생성자이고, 변환함수는 결국은 함수인것이다. 그럼 이것이 무었이냐~ 정의를 내려보면 기본형과 사용자 정의 타입(클래스)간에 연산을 할때 (클래스->기본형) 또는 (기본형->클래스) 간의 형변환을해주는 것을 말한다. 결론부터 얘기하면 변환생성자는 기본형->클래스로의 변환이고, 변환함수는 클래스->기본형으로의 변환을말한다. 1.변환 생성자 일반 타입의 변수끼리 값을 대입할 때는 산술 변환 규칙에 따라 암시적으로 상호 변환된다. 물론 모든 타입들이 다 상호변환되는 것은 아니며 호환되는 타입들..