C++(11)
-
C++프로그래밍
함수 기본 인자 전달 일반화 프로그래밍 타입에 관계없이 알고리즘을 기술하는 프로그래밍 패러다임 void swap(int a,int b) void swap(float a,float b) void swap(char a,char b) 3개는 타입은 다르지만 기술하는것은 똑같다. 템플릿 문법 클래스 템플릿과 함수 템플릿으로 구분된다 . #include template void Print(const T1& a, const T2& b) { std::cout
2022.06.07 -
C++프로그래밍 (Template)
함수 기본 인자 전달 일반화 프로그래밍 타입에 관계없이 알고리즘을 기술하는 프로그래밍 패러다임 void swap(int a,int b) void swap(float a,float b) void swap(char a,char b) 3개는 타입은 다르지만 기술하는것은 똑같다. 템플릿 문법 클래스 템플릿과 함수 템플릿으로 구분된다 . 템플릿은 하나 이상의 템플릿 피라미터와 함께 매개변수화 된다. 템플릿 피라미터에는 비 타입 피라미터,타입 피라미터,템플릿 피라미터가 있다. 타입도 인자처럼 전달할수 있다. // 타입 파라미터는 타입을 받을 수 있다. template class A { }; template class B { }; // typename 대신 class를 사용할 수 있다. template class C..
2022.06.07 -
C++ 객체지향
객체지향 프로그래밍을 쓰는이유? C언어에서는 절차지향으로 코드를 만들었지만 점점 프로그램의 볼륨이 커지면서 절차지향의 한계를 느껴서 컴퓨터 과학자들끼리 우리더 좋은 방법으로 코드를 만들어보자 해서 나온게 객체지향 프로그래밍이다. 절차지향의 단점을 알아보자 1.데이터와 데이터를 다루는 함수가 분리되어 있다. 2.함수의 이름을 항상 다르게 작성해야 한다. 3.프로그램을 확장하기 불편하다. 객체지향의 들어가기 이전에 객체지향 프로그래밍에서 사용되는 Renference,Overroding,Class에 대해 알아보자. 레퍼런스(Renference) 레퍼런스를 쓰는이유? 포인터 타입처럼 간접 참조를 위한 타입으로 포인터의 2가지 불편함을 해소시켜줌 1.포인터는 NULL값을 포함한다. 즉 NULL처리를 해줘야함2. ..
2022.06.02 -
C++ 객체지향 프로그래밍 상속쪽 오류
교수님 코드를 보고 햇는데 원활하게 실행이 안되고 이런 오류가 발생함 person의 기본 생성자가 없습니다와 매개변수 재정의 기본생성자 없음 해결은 기본생성자를 만들어주면 되는것이고 매개변수 재정의 해줄 경우 내가원하는 결과값이 나올수가 없다. 왜냐 나는 person(const char* name)에 있는 매개변수를 사용해야하는데 매개변수 정의를 해버리면 내가 출력하고싶은 값이 안나온다. 이런식으로 문제가 검색되지 않음으로 뜨지만 컴파일이 안된다. 기본생성자는 class부분에서 매개변수가 없는 메소드를 기본생성자라 햇음 기본생성자 만드는법은 2가지가 있다. 클래스에 관한 Person()메소드를 만드는 방법과 클래스 안에 생성자를 적어주지않을껴우 자동으로 합성되는것으로 알아서 두가지 방법으로 다 해봤지만 ..
2022.05.31 -
객체지향 프로그래밍
객체지향 프로그래밍(Object-Oriented Prograimming) 쓰는 이유 절차지향 프로그래밍의 한계가 있음 유지보수를 편하게 만들어야함 함수를 보면 여러가지 변수가 보인다. 확장성이 좋다. 절차지향 프로그래밍의 한계 1. 데이터와 데이터를 다루는 함수가 분리되어 있다. 어떤 타입을 설계할 때, 그 타입을 다루는 함수를 작성할 때마다 첫 번째 인자로 어떤 데이터를 다룰 것인지 주소값을 받아야 했다. 이는 쓸데없이 함수가 길어지게 하는 요인이 되며, 함수 내부에서도 포인터로 데이터를 다뤄야 하는 불편함이 있다. 2. 함수의 이름을 항상 다르게 작성해야 한다. C언어에서 함수의 이름은 전역 이름공간을 사용하기 때문에 모든 함수마다 이름을 다르게 지어줘야 했다. 3. 프로그램을 확장하기 불편하다. 항..
2022.05.30 -
202204_15 c++ 구조체
프로그래밍 기초 ( 메모리 ,cpu , 디스크) 구조체 1. 절차적 2. 구조적 3. 객체지향적 ### 추상화 ### C 언어에서 코드를 추상화하는 데 사용되는 삼총사 : 배열, 구조체 , 함수 추상화 ??? 실제 세계 (현상)를 간략화/기보화/보편화 해서 표현한것 ★ 코드에서 추상화가 필요한 이유 ★ : 결국 코드는 사람이 짜는 것이기 떄문에 다른 사람이 코드를 해석하기 편리해야 하고 다른 사람이 인수인계받아서 유집호수하기 편리해야 하고 다른 사람들과 함께 공동으로 코드를 만들기 편리해야 하고 -배열 : 속성이 동일한 여러 개의 데이터를 같은 이름과 순서를 지정한 연속된 번호로 서로 연관되어 있음을 표시함으로써 추상화함 -구조체 : 데이터 (자료형)을 실제로 쓰이는 데이터끼리 묶어서 추상화 -함수 : ..
2022.04.15