프로그래밍

this 포인터 this는 객체 자신에 대한 포인터로서 클래스 내의 멤버 함수에서 사용합니다. 때문에 전역 변수도 지역 변수도 아니며, 객체를 생성하면 만들어진 객체마다 서로 다른 this 포인터가 만들어지고 객체에 대한 주소를 가리킵니다. 멤버가 아닌 함수는 객체에 속하지 않으므로 this 포인터와 같이 사용할 수 없습니다. 정적 멤버 함수에서도 쓸 수 없지만 이내용은 5장에서 다룹니다. this 포인터는 다음과 같이 선언할 수 있습니다. class Rectangle { int width; public: Rectangle() { this->width =1; } Rectangle(int width) { this->width = width; } void a(int width){ this->width = w..
객체 포인터 포인터란 주소값을 저장해 주소에 있는 값들을 호출하는 변수이고, 코드를 쉽게 이해하기 위해 앞으로 포인터는 "무언가를 가리키고 있는 변수 '→' "로 생각합시다. 다음은 객체 포인터를 이용한 코드입니다. Rectangle A; int a = A.getArea(); Rectangle *p; p = &A; a = p ->getArea(); Rectangle 타입의 객체에 대한 포인터 변수 p는 " Rectangle *p; " 로 선언합니다. 선언된 포인터는 주소를 지정하지 않은 한 아무 객체도 가리키지 않습니다. (객체 생성 시 자동으로 그 객체를 가리키지 않습니다.) ※ 따라서 초기화를 하지 않는다면 객체에 대한 멤버 함수 접근이 불가하기에 오류가 발생합니다. 객체 주소 지정은 "& 연산자"를..
접근 지정자 클래스 선언부를 보면 public: 를 적고 난 후 멤버 함수와 멤버 변수를 쓰는 것을 볼 수 있는데, 이는 외부와의 접근 가능한 범위를 지정해 줍니다. private : 클래스 내의 멤버 함수들에게만 접근 허용 기본 디폴드 값으로 아무 접근 지정을 하지 않은 경우 자동으로 설정됩니다. 객체가 클래스의 멤버함수에 접근할 수 없게 만듭니다. 따라서 오직 생성자를 통해서만 객체가 접근 가능합니다. 또한 외부에서 객체를 생성할 수 없게 할 때도 사용합니다. public : 클래스 내외 모든 함수 접근 허용 클래스 외부에 객체를 생성하기 위해서 선언해줘야 하는 접근 지정자입니다. 멤버 함수를 보호하지 못하지만, 외부에서 객체를 생성해야 할 경우 public으로 선언하지 않으면 컴파일 오류가 발생합니..
객체의 뜻과 클래스 만들기 객체란 "하나의 대상"이라고 생각합니다. 그 하나의 대상이 가지는 내부 구조는 외부로부터 보호받고, 다른 대상과 상호작용을 하지요. 이러한 객체만의 특징을 "캡슐화"라고도 합니다. C++ 객체는 자신의 상태(state)를 보여주는 멤버 변수와 행동(behavior)을 구현하는 코드인 멤버 함수로 구성하고, 이런 객체를 정의하는 틀을 "클래스"라고 합니다. 즉, 클래스의 역할은 멤버 변수 메모리와 멤버 함수 코드를 가진 객체를 만들어 객체가 역할을 수행하게끔 하는 것이고, 컴파일이 끝나면 사라집니다. 클래스와 객체는 비슷해 보이지만, 의미와 역할은 다르기에 구분해야 합니다. class pencilcase{ int pencil_1; int pencil_2; int eraser; p..
이번 장에서는 C++의 데이터를 입력받는 법을 설명합니다. C언어 해서는 scanf, gets, getc, getcher 등 사용하지만 앞으로는 다른 방식을 사용할 것입니다. " cin " 와 " >> 연산자 " 기본적인 입력은 " cin >> 입력변수 " 로 볼 수 있습니다. 뜻은 "콘솔(키보드)로부터 데이터를 입력받아 입력변수에 대입하라"이고 cout 과는 반대의 의미를 가집니다. cin은 C++ 표준 입력 스트림 객체 (standard input stream object)로 키보드로부터 입력된 값들은 모두 스트림 버퍼에 들어옵니다. ※ 지금은 스트림 버퍼를 단순하게 스트림 = 객체, 버퍼 = 임시 메모리 공간 (버퍼링의 버퍼)라고 생각합시다. >>연산자는 스트림 추출 연산자(stream extrat..
이번 장에는 C++ 코드의 기본 구조와 개념을 설명합니다. 다음은 " 프로그래밍 기초 "라는 문장을 화면에 보여주는 코드이며 기본 구조를 알아보겠습니다. ※ C언어의 기본 문법 (반복문,배열 등)을 안다는 전제로 진행합니다. /* 여러 줄의 주석문을 만들때 쓰는 기호 */ #include // 한 줄만 주석문으로 만들때 쓰는 기호 int main( ) { std::cout
이번 카테고리에서는 대회나 백준, UVa의 코딩 문제를 연습합니다. 모든 문제는 다음 4가지를 기준으로 생각하며 풀 것입니다. ※ 문제 풀이를 보기 전에 기본적인 문법의 숙지와 자료구조를 충분히 학습하길 바랍니다. 문제 해석 가장 먼저 주어진 문제를 이해하고 코딩 없이 직접 풀어봅니다. 어려운 문제는 코딩 없이 수기로 풀어도 안 풀리는 경우가 많고, 문제가 어떻게 풀리는 지를 알아야 어떤 알고리즘을 적용할지 쉽게 파악할 수 있으므로 가장 먼저 문제를 이해하는 연습을 합니다. 입력 문제에서 입력하는 부분이 무엇인지 파악하고 입력받는 코드를 작성합니다. 쉽다고 생각할 수 있지만 문자열을 연속으로 받거나 입력받는 테스트 케이스의 종류에 따라 입력 코드가 달라지고, 가장 시간을 아껴야 하는 부분이기에 충분한 연..
w_w
'프로그래밍' 카테고리의 글 목록 (9 Page)