대학강의정리/24.1 고급 c++12 9주차 ch15 상속과 다형성 앞부분 상속이번 포스트는 앞으로 나올 모든 챕터 중 가장 중요한 상속과 다형성에 대해 다룰 것입니다. 1.상속이란c++ 에서 상속은 부모 클래스에게서 자식 클래스가 "데이터 필드"와 "멤버함수"를 물려받는 것을 말합니다. 여기서 부모 클래스는 기본 클래스, 자식 클래스는 파생 클래스라고도 부릅니다. 파생 클래스는 부모의 클래스를 물려받으면서 일부를 새롭게 재정의하거나 아니면 아예 새로운 클래스를 추가할 수도 있습니다. 또 상속은 is a관계, 예를 들어, 사람은 멸치다가 아니라 직원은 사람이다. 와 같은 관계를 기술하는 데도 사용됩니다.2. GeometricObject와 Circle, Rectangle 클래스의 ADT GeometricObject.h를 사용하지 않는다면 include하지 않아도 됩니다. 부모 클.. 2024. 5. 7. 7주차 템플릿, 벡터, 스택 템플릿 이번 포스트에서는 템플릿 함수, 템플릿 클래스, 벡터 STL 에 대해 알아볼 것 입니다. 1. 템플릿 템플릿은 함수와 클래스에서 자료형을 매개변수화하는 기능을 제공합니다. 함수에 다양한 자료형을 전달하고 반환받기 위해 c++에서는 함수 오버로딩을 제공합니다. 하지만 함수 오버로딩으로 일일히 모든 자료형을 만드는 것은 메모리 낭비도 심하고 귀찮은 일입니다. 템플릿은 이러한 수고를 줄여줍니다. 오버로딩 함수 ▼ int maxValue(int value1, int value2) { if (value1 > value2) return value1; else return value2; } double maxValue(double value1, double value2) { if (value1 > value2.. 2024. 4. 20. 6주차 포인터와 동적 메모리 관리 3,4,5 포인터와 동적 메모리 관리이전 포스트에서는 포인터의 기본, 포인터와 배열에 대해 배웠습니다. 오늘은 포인터와 동적메모리에 대해 알아봅시다.1. 정적 메모리 할당과 동적 메모리 할당 비교 정적 메모리 할당은 일반적으로 우리가 하는 변수 선언을 말합니다. 컴파일 단계에서는 stack/data 영역에 할당되면서 크기가 결정되므로 컴파일 이후 크기가 변경될 수 없습니다. stack영역에는 지역변수와 매개변수가 저장됩니다. 블록이 끝나면 소멸됩니다. data영역에는 전역 변수가 저장됩니다. 프로그램이 종료될때 사라집니다. 동적 메모리 할당은 프로그램 실행 단계에서 heap 영역에 할당됩니다. 이 heap의 자유저장소는 프로그래머가 원할 때, 원하는 크기로 할당이 가능하며 프로그래머에 의해 소멸되지.. 2024. 4. 18. 5주차 11장 포인터와 동적 메모리 관리 1,2 포인터 이번 포스트에서는 포인터의 개념에 대해 알아보고 포인터와 배열의 관계, 포인터를 이용해 함수에 배열을 전달하는 방법을 알아볼 것입니다. 1. 포인터 일반적으로 변수는 정수, 실수, 문자와 같은 데이터 값을 저장합니다. 하지만 포인터 변수는 데이터 값이 저장된 변수의 메모리 주소를 저장하는 변수입니다. 다음과 같이 선언과 동시에 초기화할 수도 있습니다. int count =5; int *pCount = &count; 선언 후에는 다음과 같이 간접참조 연산자(*)를 사용하여 그 주소의 값에 접근할 수도 있습니다. (*pCount)++; //괄호 꼭 필요. 하지만 int *pCount선언없이 바로 *pCount = &count; 하면 오류가 발생합니다. #include using namespace st.. 2024. 4. 18. 4주차 10장 객체 지향 개념 3,4,5 예상문제 1) 10개의 string 객체의 배열 선언은 어떻게 하는가?더보기string arry[10]; 2) 다음 코드의 출력은 무엇인가?int main(){string cities[] = {"Atlanta", "Dallas", "Sacannah"};cout 더보기AtlantaDallas3) 정적 데이터 필드 초기화는 어디에서 하는가?더보기구현 파일에서4) 함수 f()는 클래스 c에서 정적으로 정의되어 있고, c는 C클래스의 객체다. c.f()나 C::f(),c::f()를 호출할 수 있는가?더보기C::f()와 c.f()는 가능하지만 c::f()는 사용할 수 없다.5) 다음 클래스 정의에서 잘못된 부분은 무엇인가?class Count{public: in.. 2024. 4. 18. 3주차 10장 객체 지향 개념 1,2 예상문제 Q1. "programming" 문자열을 string으로 저장하고 " is fun!"을 추가하시오. 더보기 string s1("programming"); s1.append(" is fun!"); cout 2024. 4. 15. 이전 1 2 다음