열정,기여,열린마음

고정 헤더 영역

글 제목

메뉴 레이어

열정,기여,열린마음

메뉴 리스트

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
  • 전체 (128)
    • 낙서 (3)
    • 정리중.. (10)
    • Electronics Circuit (13)
      • Fundamentals of Electric Ci.. (10)
      • Resistive Network Analysis (3)
    • Embedded (5)
      • Article (2)
      • Processor (0)
      • IO Interface (0)
      • kernel porting (1)
      • Target Board (0)
      • Application porting (1)
    • C++ (68)
      • 기본 (13)
      • 클래스 (19)
      • 상속 (5)
      • 다형성 (4)
      • 파일처리 (4)
      • 형변환 (4)
      • 스트림 (3)
      • 예외 (4)
      • 템플릿 (8)
      • 기타 (4)
    • Codec (2)
      • 비디오기본 (0)
      • 오디오기본 (0)
      • H.264 (2)
    • Linux기본 (8)
      • Shell (2)
      • 명령어 (3)
    • Linux Kernel (2)
      • Memory (1)
      • Scheduling (0)
      • Thread (1)
    • Network (2)
      • Device (0)
      • Wireless (0)
      • Protocol (0)
      • TCP (2)
    • Programming (0)
    • Streaming Protocol (0)
      • RTSP - RTP (0)
    • Software Engineering (0)
      • UML (0)
      • Source Code Management (0)
    • English (16)
      • Grammar in Use(Advanced) (16)
홈태그미디어로그위치로그방명록
  • 낙서 3
  • 정리중.. 10
  • Electronics Circuit 13
    • Fundamentals of Electric Ci.. 10
    • Resistive Network Analysis 3
  • Embedded 5
    • Article 2
    • Processor 0
    • IO Interface 0
    • kernel porting 1
    • Target Board 0
    • Application porting 1
  • C++ 68
    • 기본 13
    • 클래스 19
    • 상속 5
    • 다형성 4
    • 파일처리 4
    • 형변환 4
    • 스트림 3
    • 예외 4
    • 템플릿 8
    • 기타 4
  • Codec 2
    • 비디오기본 0
    • 오디오기본 0
    • H.264 2
  • Linux기본 8
    • Shell 2
    • 명령어 3
  • Linux Kernel 2
    • Memory 1
    • Scheduling 0
    • Thread 1
  • Network 2
    • Device 0
    • Wireless 0
    • Protocol 0
    • TCP 2
  • Programming 0
  • Streaming Protocol 0
    • RTSP - RTP 0
  • Software Engineering 0
    • UML 0
    • Source Code Management 0
  • English 16
    • Grammar in Use(Advanced) 16

검색 레이어

열정,기여,열린마음

검색 영역

컨텐츠 검색

C++

  • 임의 위치로의 기록 및 검색

    2008.05.11 by nowpassion

  • 파일의 위치 설정

    2008.05.11 by nowpassion

  • 기본 파일 관리

    2008.05.11 by nowpassion

  • 파일 처리

    2008.05.11 by nowpassion

  • static_cast<>

    2008.05.11 by nowpassion

  • const_cast<>, reinterpret_cast<>연산자

    2008.05.11 by nowpassion

  • RTTI(Run-Time Type Information)

    2008.05.11 by nowpassion

  • 캐스팅 관련 연산자((), dynamic_cast<>)

    2008.05.11 by nowpassion

임의 위치로의 기록 및 검색

예제) 데이터 형태를 나타내는 클래스 헤더입니다. - 구현부분은 따로 올리지 않아도 알겠죠? 예제2) 파일 입출력을 도와줄 유틸리티 함수입니다. 예제3) 실제 파일관련 함수들입니다. - 이진으로 기록된 파일내용을 스트림으로 읽어와 txt파일로 기록하는 부분입니다. - 기존의 레코드를 갱신하는 함수입니다. - 새로운 계정을 만들어내는 함수입니다. - 기존의 계정을 삭제합니다. - 실제 함수들의 공통점은 바로 바이트 수대로 파일 위치포인터를 찾아 검색, 삭제 , 기록하고 있습니다. 실제 데이터 파일은 이진으로 기록되어 있는 상태입니다. 그러므로 일반데이터 파일로는 읽어들일수 없으므로 이것도 스트림으로 읽어들어와 텍스트 파일로 저장할 수 있습니다. 그러나 실제 이진으로 기록되어 있기 때문에 완전하지는 않습니다.

C++/파일처리 2008. 5. 11. 12:23

파일의 위치 설정

- 실행결과 - 실제 계정종류를 입력받아 검색하여 실제로 조건에 맞는 파일의 내용만 읽어들이는 프로그램입니다. - 주석에 나와있듯이 파일 스트림을 이용해 데이터를 읽어들이는 행위는 바로 파일 위치 포인터의 위치가 계속 움직인다고 볼 수 있습니다. 그렇기 때문에 파일을 전체 다 읽은 후에는 eof설정을 다시해줘 스트림이 없어지지 않게 해주고(112번째) 시작위치를 파일의 처음으로 설정하는 것입니다.(115번째)

C++/파일처리 2008. 5. 11. 12:14

기본 파일 관리

1. 파일 생성 - 파일도 마찬 가지고 스트림의 일부로 보면 출력 스트림을 이용하여 파일을 만들어 낼 수 있습니다. 2. 파일에 입력 및 출력 - 스트림을 열어 둔 이후 스트림관련 연산자를 이용하면 ( ) 가능합니다. 예제1) 출력용 파일 - 실행결과 - 파일내용 - 위의 결과와 같이 파일이 생성되었고 입력된 내용이 확인었습니다. - 실제 파일도 스트림이므로 오버로딩된 연산자를 통해 입출력이 되었음을 알 수 있습니다. - 실제 객체 생성후 함수를 이용하여 파일을 관리할 수도 있습니다. 예) ofstream file_stream; file_stream.open("client.dat", ios::out); - 34번째 줄에서 while의 조건문은 operator void *을 호출하고 이 함수에 의해 상태비..

C++/파일처리 2008. 5. 11. 12:09

파일 처리

1. 파일이란? - 비트 - 바이트 - 필드 - 레코드 - 파일정도? 구분지을 수 있겠죠? - 실제 개념상으로는 여러 구분이 가능하므로 정확한 기준은 없다고 봅니다. 2. C++에서 파일처리란? - C++에서는 모든 입출력을 스트림으로 관리하고 있습니다. - 앞의 클래스 상속관계에서 보다시피 실제 파일처리고 기본 I/O클래스를 가반으로 파생되어 나온 클래스로 이루어집니다. - 와 에 이들을 위한 함수가 정의되어 있습니다. 3. 그럼 항상 유용한가? - 자바/C++등은 스트림을 이용하여 모든 입출력을 처리하고 있지만 실제 속도에 민감한 시스템(소형 임베디드 시스템, 빠른 I/O를 요구하는 시스템)에서는 시스템 콜을 이용한 I/O가 더욱 효율적일 것 입니다. - 하지만 디자인적 입장에서는 이들언어에서 사용되..

C++/파일처리 2008. 5. 11. 12:00

static_cast<>

- 표준데이터 타입 변환만 지원(int에서 double로) - 클래스 계층간 변환(부모(기본)클래스의 주소를 자식(파생)클래스로의 다운캐스팅)을 허용한다. 그러나 부모클래스의 멤버와 자식클래스의 멤버가 같을수가 없으므로 위험한 캐스팅이라고 할 수 있다. 실제로 객체타입에 관한 검사를 하지 않기때문에 허용하는 것 뿐이다. - void *에서 다른 형태의 포인터 변환만 허용합니다.

C++/형변환 2008. 5. 11. 00:41

const_cast<>, reinterpret_cast<>연산자

1. const_cast - 입력된 포인터나 참조의 const 혹은 volatile속성을 일시적으로 없애는 캐스트 연산자입니다. - volatile는 휘발성이란 뜻을 가지고 있는데, volatile int a;라고 선언하면 다른 프로그램에서도 접근할 수 있는 메모리 공간이 설정이 됩니다. 실제 여러프로그램에서 함께 쓰이는 I/O등에 사용된다고 할 수 있습니다. 예제) - 실행결과 - const멤버 함수이므로 멤버를 변경할 수 없지만 const_cast를 이용해서 일시적으로 const를 무력화시켜 멤버변수를 변경하는 작업을 할 수 있었습니다.(16번째 줄) 2, reinterpret_cast - 비표준형 변환을 위해 제공하는 연산자 입니다. - 표준형 변환(int에서 double로)에 대해서는 적용되지 않..

C++/형변환 2008. 5. 11. 00:37

RTTI(Run-Time Type Information)

1. RTTI(Run-Time Type Information) - 객체의 유형을 실행시에 결정할 수 있도록 하는 기능입니다. - 객체의 다형성을 기반으로 하는 기능입니다. 예제) http://www.winapi.co.kr/clec/cpp3/33-1-1.htm의 소스를 가지고 왔습니다. - 실행결과 - 실행결과에도 나오듯이 강제로 캐스팅을 한 결과 엉뚱한 값이 나와버렸습니다. 실제 포인터형만 가지고는 실제 포인팅되어 있는 객체가 무엇인지를 알 수 없기 때문에 이를 보완하기 위해 최근 표준으로 정의된 기능이 RTTI라고 할 수 있습니다.(Child형 포인터지만 포인팅되어 있는 주소에 있는 객체가 Parent객체 인지 Child객체인지는 포인터만 가지고는 알 수 없지요.) - RTTI를 구현하는 대표적인 예가..

C++/형변환 2008. 5. 11. 00:30

캐스팅 관련 연산자((), dynamic_cast<>)

1. C언어에서의 형변환 - 기본적으로 ()를 사용하여 형변환을 합니다. - 대부분의 형변환을 할 수 있습니다. ex1) 50-1.c - 실행결과 2. dynamic_cast - 상속관계 안에서 포인터나 참조의 타입을 기본클래스에서 파생클래스로 다운캐스팅을 할 수 있습니다. - 다중상속에서 기본클래스간의 캐스팅을 지원합니다. - 다형성과 관계있기 때문에 virtual함수가 하나 이상 있어야 됩니다. 예제) 50-3.cpp - 컴파일 결과 - 컴파일 결과에서도 나오듯이 다형성이 아니다해서 에러를 발생 시키는 것을 볼 수 있습니다. - 그럼 virtual 선언을 하고 컴파일을 다시 해보겠습니다. 예제)50-5.cpp - 실행 결과 - 위의 결과를 보면 실제 기본클래스(Shape)를 파생클래스(Point)로 ..

C++/형변환 2008. 5. 11. 00:16

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 ··· 9
다음
TISTORY
열정,기여,열린마음 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.