일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- javascript
- html5
- 확률
- 선형대수학
- 위키
- 점자
- HTML5.
- 나무위키
- 프로그래밍
- 글이_점점_짧아지고_있습니다.
- LaTeX
- IT
- CSS
- C
- 오늘의 문제
- matlab
- css3
- C언어
- 물리학
- 리브레위키
- C++
- Inkscape
- python
- 수학
- ┌─┐
- 자바스크립트
- html
- 프로그래밍 언어
- Java
- Nemeth Braille
- Today
- Total
목록휴지통/['19.06-'20.07]프로그래밍101 (31)
SturdyCobble's Study Note
이 글은 C++의 레퍼런스에 대해 다룹니다. C/C++의 포인터도 약간 다룹니다. C++에서 Reference는 Pointer와 같이 변수를 간접적으로 접근할 수 있게 하는 역할을 합니다. 하지만, 그 자체에 메모리 주소를 저장하는 것이 아니라, 하나의 별명을 만드는 것처럼 작동합니다. 사실 포인터를 통해 내부적으로 레퍼런스가 구현될 수 있지만, 레퍼런스 만의 장점이 있어서 종종 이용됩니다. int var = 10; int& ref_var = var; cout
※이 글은 프로그래밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다. 이번 글에서는 포인터를 간단하게 활용하고, 연산하는 방법을 알아보겠습니다. 포인터는 기본적으로 주소이므로 숫자를 저장하고 있습니다. 따라서 그냥 덧셈, 뺄셈 다 될 것 같지만, 그렇지 않습니다. 실수로 잘못된 주소를 건드리는 경우가 있을 수도 있기에 주소를 주소로 곱하는 일은 허용되지 않습니다. 비슷한 이유로 사칙연산 중에서 포인터와 숫자 사이 덧셈과 뺄셈, 포인터와 포인터 사이 뺄셈만이 가능합니다. 각 연산의 결과는 다음과 같은 그림으로 표현할 수 있습니다. (물론 포인터 사이에는 타입이 맞아야 합니다.)..
※이 글은 프로그래밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다. 포인터는 C/C++에 존재하는 개념입니다. 포인터에 대한 설명을 Wikipedia에서 가져와 봤습니다. 밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다. 포인터는 C/C++에 존재하는 개념입니다. 포인터에 대한 설명을 Wikipedia에서 가져와 봤습니다. ■ pointer is a programming language object that stores a memory addr..
※이 글은 프로그래밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다. (제목의 기억 부류 지정자는 Storage Class Specifier를 번역한 것입니다. 기억 영역 클래스 지정자, 기억 클래스 지정자 등 다양한 번역이 존재하지만, 클래스라고 번역하는 것은 class 키워드로 지정되는 그 클래스와 혼동될 우려가 있어 위의 용어로 사용하였습니다. Microsoft Docs에서는 스토리지 클래스 지정자로 표기하고 있습니다.) 이번 글에서는 register, volatile 지정자와 메모리에 관한 내용을 다룹니다. 사실 volatile 지정자는 C언어의 기억 부류 지정자로 분..
※이 글은 프로그래밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다. 정적(static) 변수는 말 그대로 정적인 공간에 기억되는 변수입니다. 일반적인 지역 변수와는 다르게 프로그램 실행 내내 그 값이 유지될 수 있는 장점이 있습니다. 전역 변수와 비슷해보이지만, 전역변수와는 다르게 정적 변수는 지역 변수와 같이 통용되는 범위가 제한됩니다. 선언되는 지역도 지역변수와 동일합니다. 두 기억 부류의 특징을 둘 다 가졌기에, 둘의 장점을 결합하여 다음과 같은 예시를 가능하게 합니다. # include using namespace std; void counter(); int main..
※이 글은 프로그래밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다. (제목의 기억 부류 지정자는 Storage Class Specifier를 번역한 것입니다. 기억 영역 클래스 지정자, 기억 클래스 지정자 등 다양한 번역이 존재하지만, 클래스라고 번역하는 것은 class 키워드로 지정되는 그 클래스와 혼동될 우려가 있어 위의 용어로 사용하였습니다. Microsoft Docs에서는 스토리지 클래스 지정자로 표기하고 있습니다.) 이번 글의 범위는 다음과 같습니다. C/C++ Java Python 기억 부류 지정자 전역 extern (별도의 개념 존재X) global 지역 aut..
※이 글은 프로그래밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다. 오버라이딩과 오버로딩은 비슷하게 생겼지만, 서로 다른 의미를 나타내고 있습니다. 특히 메소드 오버라이딩과 함수 오버로딩은 얼핏 보면 같은 것으로 착각하기 쉽지만 아래와 같은 차이를 지닙니다. 메소드 오버라이딩 함수 오버로딩 영어 Method Overriding Function Overloading 의미 부모 클래스에서 구현된 메소드를 자식 클래스에서 재정의하는 것(재정의) 함수 이름은 같으나 매개 변수 등의 특징이 다른 여러 함수를 만드는 것(중복 정의) 이번 글에서는 상속에 관해 좀 더 알아보는 것과 함께..
※이 글은 프로그래밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다. 클래스의 상속은 객체 지향 언어를 통해 프로그래밍에 걸리는 시간과 관리의 편의성을 늘리기 위해 필수적입니다. 기존의 클래스의 기능을 물려받으면서 새로운 클래스를 만들어야 할 때, 상속의 개념을 이용할 수 있습니다. 이러한 관계는 한 클래스가 한 클래스 만을 상속받는 왼쪽 그림과 같은 형태일수도 있고, 한 클래스가 여러 클래스를 상속받는 형태일수도 있습니다. 다만, 오른쪽과 같은 여러 클래스를 상속하는 경우는 C++, Python에서 가능하지만, Java에서는 불가능합니다. (오른쪽과 같은 경우 에러가 발생하..
※이 글은 프로그래밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다. 프로그래밍으로 클래스를 사용하다보면, 인스턴스에 사용된 변수들을 초기화하거나, 초기 설정을 해야할 상황이 생깁니다. 이럴 때 생성자라는 개념을 활용할 수 있습니다. 생성자는 말 그대로 인스턴스가 생성될 때 자동으로 호출되는 메소드를 말합니다. 또한, 이에 대응되는 개념으로 인스턴스가 소멸할 때(메모리에서 해제될 때) 호출되는 소멸자라는 개념도 있습니다. 생성자와 소멸자는 다음과 같은 이름을 가진 메소드로 정의됩니다. C++ Java Python 생성자 Constructor (클래스 이름과 동일) ex) 클래..
※이 글은 프로그래밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다. 저번 글에서 인스턴스 변수에 대해 알아보았습니다. 이번 글에선 클래스 변수에 대해 이어서 알아보겠습니다. 인스턴스 변수는 인스턴스에 딸려오는 변수라면, 클래스 변수는 클래스 자체에 있는 변수에 접근하는 것이므로, 모든 인스턴스에 일괄적인 적용이 가능합니다. 다만, 만약 클래스 변수와 인스턴스 변수의 값이 다르다면, 인스턴스 변수로 접근할 때는 인스턴스 변수가 가지고 있는 값이, 클래스 변수로 접근할 때는 클래스 변수가 가지는 값을 사용하게 됩니다. 클래스 변수는 다음과 같이 사용합니다. 클래스명.변수 클래스..