총 10분 중 11분
2001
시즌 2개, 그리고 영화
시즌 2:
5화
“아일랜드”
출연: 이나영, 김민준, 김민정, 현빈
장르: 애초에 역경을 딛고 이룩하는 숭고한 사랑이란 없다. 그 역경 자체가 사랑이다.
프로그램 특징: 그 곳에서 살아남는 사랑이 어떤 모습으로 걸어오는지 기다려 보고 싶다.
장르: 애초에 역경을 딛고 이룩하는 숭고한 사랑이란 없다. 그 역경 자체가 사랑이다.
프로그램 특징: 그 곳에서 살아남는 사랑이 어떤 모습으로 걸어오는지 기다려 보고 싶다.
회차
-
[Template] Class template1018분함수 템플릿과 클래스 템플릿템플릿을 함수에서 사용할 수 있고 클래스에서 사용할 수 있다. 둘 다 틀 로 사용하는 것인데 함수 수준에서 클래스 수준으로 확대된 것만 다르다.템플릿템플릿은 overloading에서 함수를 특정 사용 매개변수, 반환 형식에 따라 여러 번 작성해줘야 한다는 불편함을 위해 효율적인 메모리와 시간 관리를 위해 나온 개념이다.// function template template tem function(tem arg){ std::cout class SortedType {private: ItemType data[MAX_ITEMS]; int length;public: SortedType(); void insertItem(ItemType value); bool f..
-
[Class] Method1016분Method a.k.a. Interface Function a.k.a. Member FunctionMethod default formstatic return_type class name :: function (arguments) const;this pointer현재 설계 중인 제품의 전화 번호는 미래에 결정된다. 그런데 제작자는 아직 결정되지 않은 전화 번호를 이용해야 하는 코드를 작성해야 할 수 있다.현재 시점에서 미래의 전화 번호에 접근하는 방법이 this pointer 입니다.int main(){ USERDATA user = { , , print}; user.Print(&user); // cpp user.Print(); return 0;}클래스 객체(인스턴스) user가 ..
-
[cpp] Class1016분C의 절차지향에서 객체 지향으로 인식을 전환해야 합니다. 인식 전환의 방법을 나를 남보듯, 손님 대하듯이 - 제작자 마인드와 사용자 마인드를 분리하는 것입니다. (코드를 남보기 쉽게 짠다는 뜻) 왜냐면 6개월 후의 나는 코드를 이해할 수 없기 때문입니다.클래스란 C 구조체에서 확정된 변수, 객체, 함수를 포함한 하나의 틀 이다. C의 구조체는 함수를 포함할 수 없지만 C++는 가능하다.- 객체란 변수들과 관련된 메서드들이 모여서 만든 하나의 꾸러미다.- 메서드란 함수 형태로 클래스의 실제 동작과 상태를 구현하는 핵심 요소다.| 메서드랑 함수는 뭐가 다르고, 변수랑 함수가 모인 객체는 클래스랑 뭐가 다른가요? 왜 용어를 이렇게 여러 개 사용하시나요?객체 지향의 패러다임을 설명하기 위해 세분화된 것입니다.•..
-
[Polymorphism] Overloading1015분cpp 에서는 함수 원형이 달라지면 이름이 같아도 다른 함수가 된다. c와 중요한 차이점이다. # Overloading함수 원형(반환 형식(type), 호출 규칙, 함수 이름, Argument 구성) 중 함수 이름을 제외하고 다르게 변경할 수 있다. 그러나 반환 형식이나 호출 규칙만 다른 경우는 문법에 맞지 않다. 즉, 함수를 이름은 같고 내용은 다르게 재정의할 수 있다. - int Add(int a, int b) {} - double Add(double a, double b) {}- int Add(int a, int b, int c) {} 호출자 관점에서 호출되는 함수는 컴파일러에 의해 자동으로 결정된다. -> 모호성void TestFunc(int a){ std::cout 위 코드는 컴파일할 수 있는..
-
메모리 구조0922분코드 - CPU가 실행할 코드가 기계어 상태로 저장 > Read-Only데이터 - static, 전역 변수 저장 스택 - 자료 구조: 프로세스의 메모리 공간 관리힙 - 배열 등 크기가 정해지지 않은 메모리 사용 시 반드시 해제해주어야 leak이 일어나지 않는다. [ 높은 주소 ][0xFFFF]| Stack | 스택은 컴파일 타임에 크기가 결정되며 지역 변수, 매개 변수를 저장하는 공간이다.스택 영역은 메모리의 높은 주소에서 낮은 주소로 할당되기 때문에 LILO 방식으로 가장 나중에 들어온 데이터가 먼저 인출된다. - 데이터를 PUSH 저장하고 POP으로 인출한다.스택 영역이 힙 영역을 침범하는 상황을 스택 오버플로우라고 하는데, 낮은 주소(나중 데이터)가 힙 영역을 침범되는 상황을 생..
-
[SQLD] 자료 사이트 정리0822분sql 실습 사이트FREE AI-Enhanced Online SQL Server Compiler - For learning & practice (sqlfiddle.com) FREE AI-Enhanced Online SQL Server Compiler - For learning & practice sqlfiddle.com 질 좋은 자료 많은 티스토리SQLD 기출문제 및 요약 모음 (2022 추가) (tistory.com) SQLD 기출문제 및 요약 모음 (2022 추가)안녕하세요. 개발하는 땅콩입니다. SQLD 요약본을 올린 지 벌써 몇 년이 됐네요.제가 공부할때 참고용으로 올렸던 SQLD 요약들이 이렇게 유명해질지 몰랐습니다. 이러한 여러분의 조회에 힘입어selgii.tistory.com 노랭이 개정판 ..
-
[풀스택프로그래밍] 웹 프론트엔드 개요0718분웹의 이해인터넷 vs. web인터넷: 전 세계의 모든 컴퓨터를 하나의 통신망 안에서 연결한다는 의미: International Network의 약자Web: World Wide Web인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 공간목적: 정보를 Hypertext 형식으로 표현해 다양한 정보/문서를 연결, 제공옆 집에 문 두드리고 가는 것 대신 웹으로 소통 : '이동 공간' 개념Hypertext = 링크Web page (한 장) -> Web site (한 권)web surfing = web browsingWeb browser : 웹 상의 데이터를 찾거나 읽을 때 사용하는 SW 웹의 구조클라이언트와 서버Client : 서비스 이용(요청)하는 컴퓨터Server : 서비스를 제공하는 컴퓨터 프..
-
Computer Architecture_MIPS Code Examples(1)0701분DP 프로그래밍에서 재귀함수를 이용했어요. 재귀함수 호출이 메모리에 어떻게 할당되는지 단계들을 살펴보면 복습에도 좋을 것 같아서! 다뤄보고자 합니다. 큰 그림은 다음 4 단계로 이루어집니다. (1) High level language to assmebly (2) Pipeline에서 어셈블리어의 실행 (3) CPU에서 Cache Memory 이용 (4) TLB와 Page Table의 실행 과정 기회가 된다면 File system 실행도 다뤄보고 싶어요! (먼 산)1. Translating from C to assembly languageHigh level 언어를 어셈블리어로 변형해주어야 하는데요. 기계는 binary data를 읽고 쓸 수 있기 때문에 '문 열려있으면 닫아줘'를 01011010101로 바..
-
OS_3_Process0527분프로세스의 개별 구성요소를 식별하고 운영체제에서 해당 구성요소가 어떻게 표현되고 스케쥴 되는지 기술한다.운영체제에서 프로세스를 생성하고 종료하는 방법을 설명한다. 이러한 작업을 수행하는 시스템 콜을 이용한 프로그램 개발을 한다.공유 메모리 및 메시지 전달을 사용하는 프로세스 간 통신을 설명하고 대조한다.파이프와 POSIX 공유 메모리를 사용하여 프로세스 간 통신을 수행하는 프로그램을 설계한다.소켓과 원격 프로시저 호출을 사용하여 클라이언트-서버 통신을 설명한다. Linux 운영체제와 상호 작용하는 커널 모듈을 설계한다.
Computer Science/Object Oriented Programming
[Template] Class template
728x90
반응형
함수 템플릿과 클래스 템플릿
템플릿을 함수에서 사용할 수 있고 클래스에서 사용할 수 있다. 둘 다 틀 로 사용하는 것인데 함수 수준에서 클래스 수준으로 확대된 것만 다르다.
템플릿
템플릿은 overloading에서 함수를 특정 사용 매개변수, 반환 형식에 따라 여러 번 작성해줘야 한다는 불편함을 위해 효율적인 메모리와 시간 관리를 위해 나온 개념이다.
// function template
template <typename tem>
tem function(tem arg){ std::cout << "argument: " << arg << std::endl; return arg; }
int main(int arg, char* argv[]){
std::cout << function(3) << function('A') << function("String") << function(3.3) << std:endl; }
// class template
template <class ItemType>
class SortedType
{
private:
ItemType data[MAX_ITEMS];
int length;
public:
SortedType();
void insertItem(ItemType value);
bool findItem(ItemType & item);
ItemType getItem(int pos);
};
template <class ItemType>
ItemType SortedType<ItemType>::getItem(int pos){
if (pos < length){
return data[pos];
} else { return -1; } ;
int main(int arg, char* argv[]){
SortedType<int> sList;
SortedType<char> charList;
}
클래스 템플릿 주의 사항
- 멤버 선언과 정의를 분리할 때에는 기술할 때마다 template</typename/>을 매번 선언해야 한다.
- 클래스 밖에서 멤버를 정의할 때에 클래스 이름 옆에 </typename/>을 기술해야 한다.
- 인스턴스 선언할 때 반드시 </typename/> 을 지정해줘야 한다.
클래스 밖에서 정의하는 경우 </typename/> 를 기술하거나 지정해줘야 한다!
각각 자료형에 맞게끔 만들어진 인스턴스는 템플릿 클래스 라고 부른다. 모두 동일한 멤버를 가진다.
이게 다입니다. 굳이 써야 할까?
어떤 형식이든 배열로 관리할 수 있는 구현이 가능하다. 그럼 템플릿에서 구조적으로 메모리 자동 동적 할당 및 해제하며 복사 생성자와 이동 시맨틱을 지원하므로 성능도 좋다.
Class<int> arr(5);
Class<int> arr2(3);
arr2 = arr;
이런 코드도 오류 없이 메모리를 r-value에 맞춰 새로 생성해 문제없이 넘어갈 수 있도록 구현이 가능하다는 것이다. 추가로 템플릿도 다중 정의, 상속이 가능하다.
그것은 나중에 ~
템플릿 매개변수
템플릿 매개변수는 클래스 템플릿 내부에서 모두 접근 가능하다. 멤버 변수처럼요. 디폴트 값도 지정 가능하다.
생성자의 매개변수로 개수를 입력받는 방식 대신 사용할 수 있다.
template<typename Type = int, int nSize = 3>
class Arraytype
{
private:
int* m_pData;
public:
Arraytype(){ m_pData = new Type[nSize] };
// Arraytype(int nParam) { m_pData = new int[nParam];}
~Arraytype() {delete [] m_pDate; } ;
int main(){
Arraytype<int, 3> arr;
arr[0] = 10;
Arraytype< > arr2;
// Arraytype a(3);
템플릿을 사용한 방식과 생성자 매개변수로 입력 받는 방식을 확인할 수 있다.
end
728x90
'Computer Science > Object Oriented Programming' 카테고리의 다른 글
[JAVA] 이것이 자바다(3판) 5장 9번 답안 (1) | 2025.04.15 |
---|---|
[cpp] 복사 생성자 (4) | 2024.11.13 |
[Class] Method (3) | 2024.10.16 |
[cpp] Class (1) | 2024.10.16 |
[Polymorphism] Overloading (0) | 2024.10.15 |
2024:10:18
Computer Science/Object Oriented Programming
[Template] Class template