카테고리 없음

202208026이종윤 c프로그래밍 7주차과제

jong133 2024. 10. 15. 13:47

private:함수는 써도 되고 안써도된다. 외부에서 접근이 안된다.

public:함수를써서 외부에서 접근이 허용이 된다. 그러므로 코코의 나이를 3살로 찍어보았다.

감출때는 private,어디서나접근할때는 public,자식에게만 접근할때는 protected.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

언어별로 특징이 다르다,

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

C++에서는 3가지의 접근방식이 있다. 정리해서 다시말하면 감출때는 private,어디서나접근할때는 public,자식에게만 접근할때는 protected.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

최초로 만든 클래스,3은 argument a는 parameter.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

함수정의는 void display(void),함수선언은 void display(void); displayl(이름),void(이름,매개변수)

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

집에서 연습해야된다.
두가지 방법으로 정의할수있다.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

class diagram

dog

-age : int 변수 -는 private속성

+getAge()

+setAge() 함수 +는 public속성

class Dog{

private:

int age;

public:

int getAge() {

return age;

}

void setAge(int a) {

age=a;

}

};

getAge setAge앞에 밖으로 끄집어낼때는 소속을 명시해야된다.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

전역변수앞에 세미콜론을 사용하면 된다.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

std namespace는 동네라고 할수있고,std::를 매번붙이기그렇다면 다른방법으로 할수있다.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

aa,bb헤더파일을 추가하고 AA,BB스탠다드동네에있는애들을호출해 34를 출력했다.
추가로 소스자체에다가 int add를 써 추가로 5가 나오게해보았다.
동네가 없거나 지정을안해도되도 add앞에 ::붙혀도 상관없다.
namespece=모든 식별자가 유일하도록 보장하는 코드영역을 정의

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

클래스이름:Integer

변수:-val::int

멤버함수:+getVal()

+setVal()

=클래스다이어그램

위클래스를 뤼튼한테 클래스다이어그램을그려달라고부탁한결과이다.
멤버함수를 클래스안에 정의를 하면 자동으로 inline함수가 된다.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

c나c++객체에서는 포인터 ->화살표객체를 쓴다.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

코드에서 여러 가지 오류가 있습니다. 아래에 수정할 부분을 정리하고, 수정된 코드를 제공하겠습니다.

오류 목록

  1. 헤더 포함 및 using 문법: #include <iostream> 뒤에 세미콜론이 있어야 합니다.
  2. 클래스 멤버 접근: Dog.age와 같은 접근은 불가능합니다. happy 객체를 통해 접근해야 합니다.
  3. 변수와 멤버 함수 선언: 변수와 함수 선언에 세미콜론이 잘못 사용되었습니다.
  4. setAge 함수에서의 세미콜론: 함수 구현 마지막에 세미콜론이 잘못 사용되었습니다.
  5. cout 사용: std::cout을 사용해야 합니다.

수정된 코드

아래는 위의 오류를 수정한 코드입니다:

cpp

#include <iostream>
using std::cout;

class Dog {
    private:
        int age;

    public:
        int getAge();
        void setAge(int a);
};

int Dog::getAge() { return age; }

void Dog::setAge(int a) {
    age = a;
}

int main() {
    Dog happy; // Dog class의 happy 객체 정의
    happy.setAge(2); // setAge 함수를 통해 age 설정
    cout << happy.getAge(); // getAge 함수를 통해 age 출력
    return 0;
}

주요 수정 사항 요약

  • happy.setAge(2);를 통해 age를 설정하도록 수정했습니다.
  • cout << happy.getAge();를 통해 age를 출력하도록 수정했습니다.
  • 클래스 멤버 접근 방식을 올바르게 수정하여, 캡슐화 원칙을 따르도록 했습니다.

이제 이 코드는 올바르게 컴파일되고 실행될 것입니다.

나이와 몸무게를 출력해보았다.
소스가 어떻게 동작하는지 잘 알려주는 파이썬튜터 사이트:https://pythontutor.com/
이렇게 응용을 할수있다.

class명:Lee

변수: -age:int

-weight:double

함수:+getAge(),+setAge(),+getweight(),+setweight(),+smile()

클래스다이어그램으로 한번 그려보았다.

나이가 한살먹는 프로그래밍을 짜보았다.

수정한클래스다이어그램

class명:Lee

변수: -age:int

-weight:double

-endOfYear:void

함수:+getAge(),+setAge(),+getweight(),+setweight(),+smile(),+endOfYear()