반응형

IT 프로그래밍/객체지향프로그래밍 57

자료구조 그룹액티비티5

그룹액티비티 1번#include #include using namespace std;vector stack; // 전역 스택int top = -1; // 스택의 꼭대기를 나타내는 변수// push 함수: 스택에 값을 추가void push(int value) { stack.push_back(value); top++;}// pop 함수: 스택에서 값을 제거하고 반환int pop() { if (top >= 0) { int value = stack[top]; stack.pop_back(); top--; return value; } else { cout 0) { push(n % 2); // 2로 나눈 나머지..

[오픈소스소프트웨어] 7.2 Linux 부팅 과정

BIOS POST -> GRUB 실행 -> Kernel 실행 -> systemd 프로세스 동작 시스템에 문제가 없는지 BIOS POST에서 합니다. 윈도우를 쓰던 리눅스를 쓰던 하드웨어에 관련된 것이기 때문에 BIOS POST를 합니다.  GRUB실행은 리눅스에 필요한 다양한 OS의 Kernel을 찾아서 메모리에 적재하고 실행시키는 것입니다. Kernel은 /boot에 kernel 및 관련 데이터가 존재하며, 메모리에 kernel 구조를 형성하고 systemd 프로세스를 기동합니다. systemd 프로세스 동작systemd : 처음 실행되는 프로세스이며 추후 모든 프로세스를 생성하는 부모 프로세스임/etc/fstab 파일을 읽고 파일시스템들을 마운트 시킴/etc/systemd/system/default...

객체지향프로그래밍 시험 예상 문제 코드

상속문제 : 다음 클래스 다이어그램을 참고하여 computer와 notebook 클래스를 작성하시오 Computer- modelName: string- processor: string- ramSize: int- diskSize: int+ Computer(modelName: string, processor: string, ramSize: int, diskSize: int)+ displayDetails(): voidNotebook extends Computer- weight: double- batteryLife: double+ Notebook(modelName: string, processor: string, ramSize: int, diskSize: int, weight: double, batteryLif..

객체지향프로그래밍 7 과제 Food Monster

#include #include #include #include using namespace std;class GameObject{protected: int distance; int x, y;public: GameObject(int startX, int startY, int distance) { this->x = startX; this->y = startY; this->distance = distance; } virtual ~GameObject() {}; virtual void move() = 0; virtual char getShape() = 0; int getX() { return x; } int getY() { return y; } bool collide(GameObject* p) { if (..

객체지향프로그래밍 6 과제

PlayList 클래스에 추가할 메서드 1. 플레이리스트의 재생 시간 합산int PlayList::get_total_duration() { int total_duration = 0; for (auto song_ptr : tracks) { total_duration += song_ptr->get_duration(); } return total_duration;}  2. 플레이리스트 내 특정 아티스트의 노래 목록vector PlayList::find_songs_by_artist(string artist_name) { vector result; for (auto song_ptr : tracks) { if (song_ptr->get_artist() == ..

객체지향프로그래밍 4 과제

1번문제 설명1. 파일 input1.txt 에서 도형의 정보가 주어집니다. 도형은 사각형과 원으로 구성됩니다.2. 도형의 정보는 각 도형의 종류 (R 또는 C)와 좌표 및 크기로 표현됩니다.3. 파일의 마지막 줄에는 원의 중심 좌표와 반지름이 주어집니다. 이 원과 교차하는 도형들을 면적순으로 정렬하여 출력해야 합니다. #include #include #include #include #include using namespace std;class Point {private: double x, y;public: Point(double a = 0, double b = 0) : x(a), y(b) {} double getX() const { return x; } double getY() co..

객체지향프로그래밍 그룹액티비티 7

#include using namespace std;class Base {public: ~Base() { cout 1-1번 문제#include #include using namespace std;class Base {public: Base() { cout 기본 클래스의 생성자 호출 : Base 생성자가 먼저 호출됩니다. 이는 상속 계층 구조의 기본 클래스가 먼저 초기화되어야 하기 때문입니다. 이후 파생클래스의 생성자가 호출됩니다.  1-2번 문제 #include #include using namespace std;class Base { int arr[10];};class Derived : public Base { int d;};int main() { cout BASE 클래스에서 arr[10]을 만들어..

다형성

베이스클래스 타입의 변수/참조/포인터가 파생클래스 타입의 객체를 저장/참조/포인팅 할 수 있습니다.  베이스타입의 변수에 파생클래스 타입의 객체를 치환할 수 있습니다.  다형성이란?베이스클래스 타입의 참조/포인터가 파생클래스 타입의 객체를 참조/포인팅 할 수 있는 것입니다. Computer 타입의 참조변수가 노트북 객체를 참조할 수 있따는 것입니다. 포인터가 노트북 객체를 포인터할 수 있는 것입니다.    동적 바인딩만약 computer 타입의 객체일 때 둘 중에 어떤 상황인지 컴파일은 알 수 가 없습니다. 동적바인딩은 코드를 실행하는 단계에서 실제로 가리키고 있는 객체가 뭔지에 따라서 그것의 메서드를 호출해준다는 것입니다. 이것이 virtual method이기 때문에 양쪽 둘 다 있기 때문에 가능한 것..

메서드 오버라이딩

오버라이딩이란?베이스 클래스가 가지고 있는 멤버 메스드를 Derived 클래스에서 새로운 함수로 덮어쓰는 것을 오버라이딩입니다. 즉 베이스 클래스에서 존재하는 메서드를 파생클래스에 재정의하는 것을 오버라이딩이라고 합니다.  베이스클래스의 오버라이딩할 메서드를 virtual로 선언virtual string toString() { ... return result;}파생클래스에 오버라이딩할 메서드를 다음과 같이 추가:string toString() override { string result = Computer::toString() + "\nScreen size: " + to_string(screenSize) + " inches" + "\nWeight: " + to_stri..

반응형