전체 글 138

<C++> 생성자와 소멸자

객체를 생성할때 생성절차를 꼭밟아야하는것이 있는데 생성자와 소멸자가 그들이다. 객체를 생성하기 위해서 생성자와 소멸자가 필요하다 물론 생성자와 소멸자를 정의하지 않아도 객체생성은 가능하다 디폴트 생성자와 디폴트 소멸자가 존재하기때문에 가능한것이다. 디폴드생성자와소멸자는 아무것도 없다 단지 객체생성의 규칙이이때문에 존재해야하는것이다. * 생성자 * - 객체를 생성과 동시에 호출되어지는 함수를 말한다. - 리턴타입을 갖지않으며 리턴하지도 않는다. - 생성자이름은 클래스명과 동일해야한다. - 생성자 오버로딩이 디폴트매개변수 선언이 가능하다. - 주로 데이터를 초기화할때 사용되고 디버깅할때도 사용된다. * 소멸자 * - 객체가 소멸과 동시에 호출되어지는 함수를 말한다. - 리턴타입을 갖지않으며 리턴하지도 않는다..

。공부 。 2007.11.29

<C++> 캡슐화와 추상화란?

추상화란.. 약을 예로 들면 약엔 알약 가루약 그리고 캡슐로 쌓여져 있는 약이 있죠? 그 캡슐 안에는 우리가 모르는 종류의 처방약들이 들어있을 것입니다. 근데 우리가 그 약을 먹을때 이안에 어떤어떤 기능을 해주는 어떤어떤종류의 약들이 들어있다 라고 알고 먹는 사람들은 극히 들물것이다. 이약하나만 먹으면 감기가나으니까 이건 감기약이야 하고 먹어버리면 그만이니까 말이다 이렇듯 사람들은 이약에 이것저것 무엇이들었는지 복잡하게 생각할필요없이 단지 감기약이라는것만 알고 먹으면 그만이다 이러한것을 추상화라한다. 음.. 하얀박스에 빨간십자가가 그려져있습니다. 그통이 무엇이라고 생각하죠? 그렇죠 약상자입니다 당연히 그상자엔 약이들어있겠고요.. 이것역시 추상화랍니다. 캡슐화란.. C++ 로 간단히 은행시스템의 계좌를 예..

。공부 。 2007.11.29

<C++> 레퍼런스

레퍼런스를 이용해 메모리공간을 좀더 효율적으로 사용할수 있다. 레퍼런스를 간단히 설명하자면 할당된 메모리 공간에 또하나의 다른이름을 붙인다고 생각하면 쉽다 만들어진 레퍼런스 변수는 일반변수와 똑같이 사용된다. 레퍼런스 선언방법과 사용방법을 알아보자 * 레퍼런스 선언 * int main(void){ int val=10; int &ref=val; //변수 val에 또다른 이름을 붙인다.(레퍼런스선언) val++; cout

。공부 。 2007.11.25

<MySQL> locate(),position()함수

MySQL에는 locate()와 position()라는 함수가 존재한다. 함수만 해석한다면 위치를 반환하라 정도? 맞는말이다 위치를 반화하는것이다 하지만 비교하는 문자의 값이 비교할 데이터와 일치해야만 위치를 반환한다. locate()함수와 positiion()함수는 같은 기능을한다. * locate();함수사용법 * - select locate('ayoe','qqkyoeqq'); 문자'a'이후의 값'yoe'는 일치하지만 첫문자'a'와'k'가 일치하지 않기 때문에 결과값은 '0'이된다. - select locate('kyoe','qqkyoeqq'); 위와 같이 sql문을 작성하면 반환되는 값은 3이 된다. 'kyoe'라는문자가 'qqkyoeqq'에 속해있기때문에 그결과는 참이되고 문자'kyoe'의 위치를..

。공부 。 2007.11.24

<XP> 숨긴파일보기가 안될때

바이러스나 악성코드에 의에 레지스트리값이 변경되었거나 삭제되었을시 숨긴파일보기를 클릭한후 적용 또는 확인 버튼을 눌렀음에도 숨긴파일이 보이지 않는경우가 있다 물론 도구 -> 포더옵션 -> 보기 를 가보면 분명히 난 '숨긴파일 및 폴더보기'를 클릭했는데 왠일인지 '숨긴파일 및 폴더 표시 안함' 에 클릭이 되어있는것을 볼수 있다. 이럴땐 레지스트리를 살짝 건드려줘야 한다. 시작 -> 실행 -> regedit 를 치고 엔터 아래의 경로로 들어간다. HKEY_LOCAL_MACHINE - > SOFTWARE -> Microsoft -> Windows -> CurrentVersion -> Explorer -> Advanced -> Folder -> Hidden -> SHOWALL 위의 경로로 들어간후 아래의 값으로..

<C++> 함수오버로딩,디폴트매개변수

C언어 에선 '함수오버로딩'이란것이 존재하지 않는다 C언어 컴파일러는 함수이름만을 보고 컴파일할뿐이지 함수의 매개변수 갯수와 매개변수 타입이 어떤것지는 구분하지 않기 때문이다 하지만 C++컴파일러는 매개변수의 갯수와 매개변수 타입을 구분할줄 안다 이렇게 컴파일러가 업그레이드 되면서 C++에선 '함수 오버로딩'이란것을 할수있게 된다. 함수 오버로딩이란 함수 이름은 같아도 함수의 매개변수타입 또는 매개변수의 갯수의 따라 함수의 호출을 달리 할수있는것을 말한다. - 오버로딩을 사용한예 - #include using std::cout; using std::cin; using std::endl; int function(int num=10){ //디폴트매개변수 지정 변수값은 10 num +=10; return nu..

。공부 。 2007.11.21

<C++> 편의를 위한 Using 의 쓰임

Using 란 사용하겠다라는 건데 이걸 C++에서는 어떻게 쓸까? namespace를 사용해 이름공간이라는것을 만들수 있다 이 이름공간이라는 것을 만들어 사용하기 위해선 반드시 namespace(이름공간)의 이름을 붙여줘한다 하지만 매번 AA::function() 이런식으로 붙여쓰면 코딩도 지저분해질뿐더러 왠지 지저분해 보인다. 물론 그렇게 쓰는게 나쁘다는것은 아니다 나중에 길어진 소스를 해석할땐 오히려 붙여쓰는게 해석할때 도움이 될수도 있기때문이다. - Using 의 사용예 - #include namespace A_kyoe{ //A_kyoe이라는 이름 공간 void function(void){ std::cout

。공부 。 2007.11.21

<C++> Namespace (이름공간)

Namespace란 말그대로 '이름 공간'이라는 것이다. 우리가 예를 들어 어떤 프로젝트를 팀을 나눠서 진행을 했다고 하고 프로젝트 마감일에 모여 서로의 프로그램을 합쳤다치자 그때 우리는 중복되는 함수이름이나 변수명들을 발견한다. 이럴때 어떤한팀이 손해를보고 함수명과 변수명을 고친다고 하면 여간힘든일이 아닐것이다 물론 작은프로젝트일 경우엔 피해가 덜하겠지만 큰프로젝트라고 하면 대략 난감이다..;; 이를 대비해서 우리는 namespace라는 키워드를 사용해 이름공간을 선언한다. - 아래 예를 통해서 namespace(이름공간)을 사용하는법을 알아보자. - #include //신 버전의 해더 선언 'iostream.h'는 구버전의 헤더이다. namespace A_kyoe{ //A_kyoe 라는 이름 공간 v..

。공부 。 2007.11.21

<DB>조작어(DML) Insert, Delete, Update

* INSERT 문 * INSERT 문은 테이블에 새로운 튜플을 삽입할 때 사용하는 명령문이다. = 표기 형식 = INSERT INTO 테이블명[(속성명1,속성명2, ..)] VALUES (데이터1, 데이터2, ..); - 대응하는 속성과 데이터는 개수와 데이터 타입이 일치해야 한다. - 테이블의 모든 속성에 대해 입력할 때는 속성명을 생략할 수 있다. 단, 이때에는 CREATE TABLE문에서 기술된 속성 순으로 속성값들을 지정해야 한다. - SELECT문을 이용하여 다른 테이블의 검색 결과를 삽입할 수 있다. 예) 테이블에 이름이 '이순신'이고,부서가 'DB;인 사원을 삽입하는 SQL 문 작성 INSERT INTO 사원(이름, 부서) VALUES('이순신','DB'); 예) 테이블에 ('장보고','기..

。공부 。 2007.11.20

<DB> JOIN

* JOIN의 개념 * - JOIN은 두 개의 릴레이션에 대해 연관된 튜플들을 결합하여, 하나의 새로운 릴레이션을 반환한다. - JOIN은 크게 INNER JOIN과 OUTER JOIN으로 구분된다. - JOIN은 일반적으로 FROM절에 기술하지만, 릴레이션이 사용되는 어느 곳에서나 사용할 수 있다. * INNER JOIN * - INNER JOIN은 일반적으로 EQUI JOIN과 NON EQUI JOIN으로 구분된다. - EQUI JOIN은 JOIN 대상 테이블에서 공콩 속성을 기준으로 '='(equal)비교를 통해 같은 값을 가지는 행을 연결하여 결과를 생성하는 JOIN방법이다. - EQUI JOIN에서 JOIN조건이 '='일 때 동일한 속성이 두 번 나타나게 되는데, 이 중 중복된 속성을 제거하여 ..

。공부 。 2007.11.20