일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 위키
- 리브레위키
- C
- CSS
- 글이_점점_짧아지고_있습니다.
- HTML5.
- ┌─┐
- css3
- C언어
- python
- 선형대수학
- 자바스크립트
- 나무위키
- 물리학
- 점자
- 프로그래밍 언어
- 확률
- html
- html5
- 오늘의 문제
- 수학
- javascript
- LaTeX
- Inkscape
- IT
- matlab
- Nemeth Braille
- C++
- Java
- 프로그래밍
- Today
- Total
목록분류 전체보기 (51)
SturdyCobble's Study Note
이 글은 C++의 레퍼런스에 대해 다룹니다. C/C++의 포인터도 약간 다룹니다. C++에서 Reference는 Pointer와 같이 변수를 간접적으로 접근할 수 있게 하는 역할을 합니다. 하지만, 그 자체에 메모리 주소를 저장하는 것이 아니라, 하나의 별명을 만드는 것처럼 작동합니다. 사실 포인터를 통해 내부적으로 레퍼런스가 구현될 수 있지만, 레퍼런스 만의 장점이 있어서 종종 이용됩니다. int var = 10; int& ref_var = var; cout
최근 LaTeX을 활용할 일이 많아져서 Atom에 관련 패키지를 설치해서 편집기로 활용할 수 있도록 했습니다. 설치한 패키지는 다음과 같습니다. 물론 그 전까지 Overleaf를 잘 활용하고 있었지만, 인터넷이 되야 한다는 점 등이 걸려서 Atom을 활용하기로 했습니다. latex -> Compile language-latex -> Syntax Highlight latexer -> Auto-complete LaTeX 조판 프로그램이 추가로 설치되어야 하는데, 처음에는 MikTex 쓰다가 나중에 TexLive로 갈아탔습니다. 둘 다 패키지에 latexmk를 추가해야 하는데, MikTex의 경우 내장 펄(Perl)이 없어서 ActivePerl이나 StrawberryPerl(저는 드라이브 이름때문에 Activ..
※이 글은 프로그래밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다. 이번 글에서는 포인터를 간단하게 활용하고, 연산하는 방법을 알아보겠습니다. 포인터는 기본적으로 주소이므로 숫자를 저장하고 있습니다. 따라서 그냥 덧셈, 뺄셈 다 될 것 같지만, 그렇지 않습니다. 실수로 잘못된 주소를 건드리는 경우가 있을 수도 있기에 주소를 주소로 곱하는 일은 허용되지 않습니다. 비슷한 이유로 사칙연산 중에서 포인터와 숫자 사이 덧셈과 뺄셈, 포인터와 포인터 사이 뺄셈만이 가능합니다. 각 연산의 결과는 다음과 같은 그림으로 표현할 수 있습니다. (물론 포인터 사이에는 타입이 맞아야 합니다.)..
※이 글은 프로그래밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다. 포인터는 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) 클래..