분류 전체보기

[Python] 변수(Variable)와 자료형(Datatype)
변수 변수란 말 그대로 '변할 수 있는 값'을 의미하며, 파이썬에서의 변수는 객체의 메모리 주소를 가리킨다. 파이썬은 모든 것을 객체로 취급한다. 변수 만들기 변수를 만들거나, 값을 변경할 때 대입(=할당, assignment)을 사용한다. 변수 이름 규칙은 다음과 같다. 문자, 숫자, _를 이용하여 생성할 수 있으나, 숫자를 변수명 맨 앞에 둘 수 없다. _(밑줄)은 변수명 맨 앞에 둘 수 있다. 대소문자를 구분한다. 특수문자(!, &, * 등)와 예약어(for, while, and 등)는 변수명으로 사용할 수 없다. 공백 및 연산자(*, % 등)는 사용할 수 없다. 변수 생성 a = 10 a 10 파이썬은 따로 타입(int, float, string 등)을 적을 필요 없이 '변수명 = 값'으로 변수를..

[Python] 파이썬(Python)?
파이썬 (Python) 1991년 네덜란드계 소프트웨어 엔지니어인 귀도 반 로섬이 발표한 고급 프로그래밍 언어 플랫폼에 독립적 객체지향적 인터프리터 언어: 한 줄씩 소스 코드를 해석 및 실행하여 결과를 확인할 수 있는 언어 동적 타이핑(dynamically typed) 대화형 언어: 실행 시간(런타임)에 자료형을 검사 파이썬의 특징 디자인 철학 '가장 아름다운 하나의 답이 존재한다'. 다양한 코딩 스타일을 갖는 다른 언어들에 비해, 위의 문장을 기본으로 따르는 파이썬은 하나의 코딩 스타일로 수렴 진화하는 특성을 가진다. 이 철학은 Python스러움(Pythonic)이라는 개념을 낳았으며, 복잡하지 않으면서 의미가 명확하고, 코드의 축약보다 뚜렷하게 보이는 흐름을 중시해야 함을 강조한다. PEP 20에는 ..
[C++] 템플릿 응용
템플릿 파라미터 팩 (parameter pack) // typename 뒤 ...으로 오는 것이 파라미터 팩 template 템플릿 파라미터 팩은 0개 이상의 템플릿 인자를 나타낸다. 함수에서는 인자로 ... 이 오는 것을 함수 파라미터 팩이라고 부르며, 0개 이상의 함수 인자를 나타낸다. 가변 길이 템플릿 예제 print() 함수 구현 #include using namespace std; // 단일 인자의 print 함수 template void print(T arg) { cout
[C++] 템플릿 (Template)
템플릿 매개변수의 타입에 따라 함수나 클래스를 생성하는 매커니즘 여러 타입에서 동작할 수 있는 코드를 찍어내는 틀이라고 생각하면 된다. 템플릿을 사용하면 다양한 타입에 대해서 하나의 함수만 정의하면 되므로 전체 코드를 매우 간결하게 만들 수 있다. 템플릿을 통해 타입을 마치 인자인 것 마냥 사용하는 것을 일반화 프로그래밍(generic programming)이라고 한다. 템플릿 정의 템플릿은 함수 템플릿(Function Template)과 클래스 템플릿(Class Template)으로 나뉜다. 함수 템플릿 정의 template 함수 원형 { // 함수 본체 } typename 키워드를 template의 인자로서 받는다. 타입이름은 함수 원형과 본체에서 임의의 타입으로 사용되며, 함수 호출 시 전달된 매개..
[C++] 순수 가상 함수 / 추상 클래스
순수 가상 함수(Pure Virtual Function) 가상 함수 중 파생 클래스에서 반드시 재정의해야 하는 멤버 함수 함수의 동작을 정의하는 본체를 가지고 있지 않다. 파생 클래스에서 재정의하지 않으면 사용할 수 없다. 순수 가상 함수 선언 순수 가상 함수를 선언하는 문법은 다음과 같다. virtual 멤버함수의원형=0;// '=0'은 함수만 있고 본체는 없다는 의미 순수 가상 함수 예제 #include using namespace std; class Animal { public: Animal() {} virtual ~Animal() {} // 가상 소멸자 선언 virtual void Cry() = 0; // 순수 가상 함수 선언 }; class Dog : public Animal { public: ..
[C++] virtual 소멸자
virtual 소멸자 상속 시에 소멸자는 반드시 virtual을 이용하여 가상함수로 만들어야 한다. 평범한 상속 Case #include using namespace std; class Base { public: Base() { cout
[C++] 클래스 상속 (Inheritance)
상속 (inheritance) 상위 클래스의 내용(속성, 메소드)을 하위 클래스가 그대로 물려받는 것 상위 클래스(super class) == 부모 클래스(parent class) == 기초 클래스(base class) 하위 클래스(sub class) == 자식 클래스(child class) == 파생 클래스(derived class) 상속 구현하기 상속 선언 문법은 다음과 같다. // 단일 상속 class 파생클래스: 접근제어지시자 기초클래스{ // 파생클래스 멤버 } // 다중 상속 class 파생클래스: 접근제어지시자 기초클래스, 접근제어지시자 기초클래스{ // 파생클래스 멤버 } // EX class Derived : public Base { // members of Derived class } ..
[C++] friend 키워드
friend 접근 제한자를 무력화하여 외부에서도 private, protected 멤버에 접근할 수 있도록 하는 키워드 주로 클래스에서 멤버 함수가 아닌 함수가 private한 멤버 변수에 접근하려고 할 때 사용한다. 클래스에서 멤버 함수와 전역 함수를 정의하는 것의 차이를 잘 모르겠다면 아래의 게시글을 참고한다. [C++] 오버로딩 (Overloading) - 2. 연산자 [C++] 오버로딩 (Overloading) - 1.함수, 생성자 오버로딩 (overloading) 같은 이름의 메소드(method) 또는 생성자를 매개변수의 개수나 타입을 다르게 지정함으로써 2개 이상 정의하는 것 함수 오버로딩 함 wn42.tistory.com friend 선언 friend 키워드를 이용하여 만들 수 있는 형태는 ..