갓똥
나는야 프로그래머
갓똥
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 프로그래밍 (146)
      • 자바 (9)
      • 안드로이드 (2)
      • 유니티 (20)
      • C++ (38)
      • C# (56)
      • HTML (2)
      • 파이썬 (3)
      • 자료구조 (2)
      • 알고리즘 (0)
      • 문제풀이 (4)
      • 디자인 패턴 (7)
      • 카카오톡 봇 (1)
      • 엑셀 (1)
      • 기타 (1)
    • 게임 (21)
      • 테일즈위버 (0)
      • 카이로소프트 (1)
      • 순위 (19)
      • 기타 (1)
    • 일상 (13)
      • 카페 (1)
      • 방탈출 (12)
    • 기타 (6)
      • 웃긴자료 (5)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • C++ virtual
  • c# delegate
  • 알고리즘
  • Unity Graph
  • 게임매출순위
  • c# coroutine
  • C++ 상속
  • 게임 디자인 패턴
  • c# 코루틴
  • C++ 소멸자
  • 강남 방탈출
  • C++
  • 유니티 그래프
  • C# 예외 처리
  • 전세계게임매출순위
  • pc 게임 순위
  • 2020년 게임 매출
  • 유니티 골드그래프
  • 모바일 게임 순위
  • c# unboxing
  • 롤 골드그래프
  • pc게임 순위
  • 유니티 그래프 그리기
  • 글로벌게임매출
  • C# boxing
  • c# Thread
  • 전세계 게임 매출
  • 자바
  • c# collection
  • 게임 매출 순위

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갓똥
프로그래밍/C++

[C++] 객체지향 프로그래밍의 개념(2)

[C++] 객체지향 프로그래밍의 개념(2)
프로그래밍/C++

[C++] 객체지향 프로그래밍의 개념(2)

2019. 10. 29. 22:50
728x90
반응형

1. 변수와 객체 (variable vs object)

#include <stack>

int main() {
    int n = 0;  // 변수
    n = 10;
    
    std::stack<int> s; // 객체
    
    s.push(10);
    s.push(20);
    int n2 = s.top();
    
    s.pop();
}

  - 변수 (Variable)

    => 변하는 수

    => 메모리의 특정 위치를 가르키는 이름

    => 변수를 사용하면 메모리에 값을 읽거나 쓸 수 있다.

    => 언어가 제공하는 기본 타입(primitive type)의 인스턴스

 

  - 객체 (Object)

    => 메모리를 할당하고 자신을 스스로 초기화 한다.

    => 상태와 동작을 가지고 있는 존재

    => 객체를 사용하면 해당 객체가 제공하는 다양한 서비스를 사용할 수 있다.

    => 사용자 정의 타입(User Define Type)으로 만든 변수

 


2. 프로그래밍 패러다임 (Programming Paradigm)

#include <stack>

int main() {
    int n = 0;  // 변수
    n = 10;
    
    std::stack<int> s; // 객체
    
    s.push(10);
    s.push(20);
    int n2 = s.top();
    
    s.pop();
}

2.1 프로그램이란?

  - 명령형(절차적) 프로그래밍 패러다임 (C언어)

    => 프로그램은 컴퓨터가 수행할 명령어들의 나열이다.

    => 모든 프로그램은 main함수 부터 순차적으로 실행된다.

    => 제어문, 반복문, 함수 등을 사용해서 실행흐름을 변경할 수 있다.

 

  - 객체지향 프로그래밍 패러다임 (C++, Java, C#)

    => 프로그램은 객체들과 객체들 사이의 메시지이다.

    => 문제를 해결하기 위해 필요한 타입을 찾아내고, 설계

    => 설계한 객체를 생성하고, 객체끼리 메시지를 주고 받으면서 문제를 해결하는 것

 

2.2 C++ 패러다임

  - C++은 다중 패러다임(Multi Paradigm) 언어 이다.

    => 명령형(절차적) 프로그래밍 패러다임 지원

    => 객체 지향 프로그래밍 패러다임 지원

    => 일반화 프로그래밍 패러다임 지원 - 템플릿

    => 함수형 프로그래밍 패러다임 지원

 


3. C++ 표준과 stack

#include <iostream>
#include <stack>

int main() {
    std::stack<int> s;
    
    s.push(10);
    s.push(20);
    
    std::cout << s.top() << std::endl; // 20
    
    s.pop();
    
    std::cout << s.top() << std::endl; // 10
}

  - STL

    => C++에서 제공하는 표준 라이브러리

    => Standard Template Library

 

  - STL에서 제공하는 stack

    => <stack> 헤더

    => 클래스 템플릿으로 되어 있다.

 

  - STL stack의 주요 멤버 함수

 


4. C++ 표준과 vector

#include <iostream>

int main() {
    int x[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    
    for(int i = 0; i < 10; i++)
        std::cout << x[i] << std::endl;
}

  - C 배열의 단점 - 크기를 변경할 수 없다.

  - STL vector

    => 배열과 유사하게 연속된 메모리를 사용하는 컨테이너

    => <vector> 헤더 파일

    => 배열과 동일한 방법으로 사용가능 - [] 연산 사용 가능

    => 크기를 조절할 수 있다. - resize 멤버 함수

#include <iostream>
#include <vector>

int main() {
    //int x[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    
    // std::vector<int> x;     - 크기 지정 안함
    // std::vector<int> x(10); - 10칸짜리 크기 지정
    std::vector<int> x = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    
    x[0] = 10;
    
    x.resize(20);
    
    for(int i = 0; i < x.size(); i++)
        std::cout << x[i] << std::endl;
}
728x90
반응형

'프로그래밍 > C++' 카테고리의 다른 글

[C++] 생성자 (constructor)  (0) 2019.10.31
[C++] 접근지정자  (0) 2019.10.29
[C++] 객체지향 프로그래밍의 개념(1)  (0) 2019.10.29
[C++] 동적 메모리 할당, nullptr  (0) 2019.10.27
[C++] Explicit Casting  (0) 2019.10.25
  • 1. 변수와 객체 (variable vs object)
  • 2. 프로그래밍 패러다임 (Programming Paradigm)
  • 3. C++ 표준과 stack
  • 4. C++ 표준과 vector
'프로그래밍/C++' 카테고리의 다른 글
  • [C++] 생성자 (constructor)
  • [C++] 접근지정자
  • [C++] 객체지향 프로그래밍의 개념(1)
  • [C++] 동적 메모리 할당, nullptr
갓똥
갓똥
공부하며 알아가는 내용을 정리해 봅니다.

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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