분류 전체보기
-
템플릿에 대하여...카테고리 없음 2013. 3. 7. 15:21
템플릿 : 컴파일러가 미리 등록된 함수의 형틀을 기억 해두었다가 함수가 호출될때 실제 함수를만드는 장치이다. - 템플릿은 매개변수의 데이터 타입에 기초한 함수와 클래스를 생성하는 메커니즘이다.- 따라서 템플릿을 매개 변수가 있는 데이터 타입이라고 한다.- 템플릿을 사용하면 각 데이터 타입에 대한 별도의 클래스 또는 함수를 생성할 필요없이 단 하나의 클래스를 생성하여 그 클래스를 여러 데이터 타입에 사용할수 있게 된다. 함수 템플릿 : 함수를 찍어 내기 위한 형틀 이다.즉 이 템플릿에 의해 함수가 만들어진다: 이렇게 만들어진 함수들은 기능은 결정되어있지만, 자료형은 결정되어있지않다.- 같은 기능을 하는 함수도 다양한 자료형을 인자로 호출이 가능하다.- 자료형을 명시하지않으면 컴파일러가 인자를 확인하여 호출..
-
함수 포인터 타입카테고리 없음 2013. 3. 6. 16:56
함수 포인터 타입 함수 포인터 타입도 일종의 고유한 타입이다 원형이 다른 함수 포인터끼리는 곧바로 대입 할수없으며, 함수의 인수로도 넘길수 없다. int (*pf1)(char *); void (*pf2)(double); pf1 = pf2; --> 서로 타입이 다르므로 에러임 두변수가 가리킬수 있는 함수의 원형이 다르기때문에 pf2 가 가리키는 번지를 pf1 에 곧바로 대입 할수 없다. 함수 포인터가 가리킬수 있는 원형과 같지 않은 함수의 번지를 대입 하는것도 똑같은 이유로 에러로 처리된다.
-
static & extern (변수와 함수에 사용시)카테고리 없음 2013. 3. 6. 14:43
정적 함수 : -> static 함수: 전역 함수로 취급 되지만, 선언된 영역에서만 호출 가능하다.# static 함수는 소스 코드 내에서 은페성을 높이기 위해 매우 중요한 요소이다.# static 을 붙이면 해당 함수의 접근은 해당 파일 내로 제한한다.즉 그 파일 내에서만 통용되는 완전한 로컬 함수로 취급 할수있다단점 : 다른 파일과 함수명의 충돌이 있을지 걱정하지 않아도 된다.다른 파일 에서는 그 함수를 호출하지 않는것이 보장된다. -> 클래스의 멤버 함수로의 static 함수* 실제로 클래스의 멤버 함수가 아니라 전역 함수이지만 그 클래스의 영역 내에서만 사용 가능* 전역 함수이므로 클래스의 인스턴스를 생성하지 않고 호출 할수있다. -> 주의 사항* 선언된 클래스의 다른 멤버 변수나 멤버 함수를 직..
-
정렬카테고리 없음 2013. 3. 6. 02:16
#pragma once #include "targetver.h" #include #include #include #include #include using namespace std; #define SHUFFLE_MAX 100///< 최대 교환 횟수#define MAX_ARRAY 10 ///< 최대 배열 개수 ===================================#pragma once class cSort{public:cSort(void);~cSort(void); ///< 오름 차순 : ascending sort(어센딩)///< 내림 차순 : descending sort(디센딩) ///< 함수 포인터를 이용한 교환typedef void(*SortFuncPtr)(int&, int&); ///< 버블..
-
string 클래스카테고리 없음 2013. 3. 2. 14:08
stdfx.h 헤더#pragma once #include "targetver.h" #include #include #include using namespace std;======================================================#pragma once class cMyString{private://< NULL을 제외한 문자열의 길이intm_nLength;//< 문자열char*m_pStr; public://< 생성자cMyString(void);//< 인자가 있는 생성자cMyString( const char* pStr );//< 복사생성자cMyString( const cMyString&rhs );//< 소멸자~cMyString(void); //< 길이를 반환 inline u..
-
인라인 함수카테고리 없음 2013. 2. 28. 21:49
인라인 함수: inline 키워드--> 정의부가 cpp 상에서 존재하면 inline 키워드로 선언한 함수여도 일반 함수 취급한다. 선언과 정의부가 header파일 안에서만 인라인 함수의 존재를 가진다. 헤더파일 안에 선언과 정의를 같이 하면 자동으로 인라인 함수로 취급한다. 인라인 함수는 원한다고 해서 반듯이 되는것은 아니다, 컴퓨터의 상태에 따라서 다르기때문이다. 가능 하다면 해달라고,,,,, 부탁하는것이다 __forceinline --> 강제로 해준다. : 사용하지않는것이 좋음
-
클래스 이론 2카테고리 없음 2013. 2. 26. 22:30
객체: 의사나 행위가 미치는 대상 문장 내에서 동사의 행위가 미치는 대상 프로그래밍적 의미: 데이터와 그 데이터에 관련되는 동작(절차,방법,기능)을 모두 포함한 개념 클래스 라는 자료형으로 선언한 변수 클래스: 객체 지향 프로그래밍에서 객체를 생성하기 위한 기본 템플릿 객체: 클래스로 만든 하나의 변수 붕어판틀(클래스)과 붕어빵(객체) 설계도(클래스)와 제품(객체) 정보은닉: 클래스 외부에서 알필요가 없는 정보에 대해서는 접근을 제어하여 알수없도록 은닉하는것 단순히 외부에 데이터 공개를 차단하는것 캡슐화: 외부와 약속된 부분을 제외한 나머지 부분을 감싸서 숨겨버리는것 특정 기능 단위로 모으고 약속된 부분만 공개한다.(약속된 부분을 인터페이스라고한다) 예: 감기약(알약안에 무엇이 들어있는지 모른다) 정보은..
-
클래스 관련 핵심이론카테고리 없음 2013. 2. 23. 22:12
객체: 인스턴스와 메소드를 포함 한 개념->클래스로부터 만들어진 실체 or 변수 클래스는 타입이다.--> 클래스는 타입이기때문에 int 와 같다 사용할 준비가 완료된 하나의 물건 또는 인스턴스다. 클래스를 만들어 놓으면 그냥 타입이다 라고 알려만 주는것이다. Class A --> A a --> a 는 객체이다. 즉 클래스에의하여 만들어진 객체 a 이다. 만들어지기전 인스턴스화가 일어난다. 타입을 사용하려면 만들어줘야한다. 즉 a 라는 객체를 만들어야한다. 이때 일어나는것이 인스턴스화가 일어났다 라고 한다. 인스턴스화: --> 메모리 공간에 구체화 또는 실체화 시키는것이다. --> 클래스가 객체는 아니다 왜? 아직 인스턴스화가 되지않았기때문이다. --> 같은 클래스 타입의 객체를 여러개의 객체를 만들수있다..