본문 바로가기

C++ 프로그래밍 (1학년 2학기)

231012 C++ 프로그래밍 5주차

1. Visual Studio Code에서 자동으로 만들어주는 C++ 기본 소스

#include <iostream>
int main()
{
    std::cout << "Hello World!\n";
}

2. C언어와 C++의 가장 큰 차이점

- C구조체(변수의 모임), C++클래스(변수+함수의 모임) 

3. C언어에서는 struct를 쓰지 않아도 괜찮지만,c

4. 앞에 일반 변수가 있으면 . 으로 접근 가능하고, 앞에 포인터 변수가 있다면 →로 접근한다.

5. 구조체 변수를 초기화하는 방법

Man han = { 1,3.5 };    
    std::cout << han.age << " " << han.weight << std::endl;

6. 

#include <iostream>
struct Man {
    int age; //멤버
    double weight;
};
int main()
{
    Man han = { 1,3.5 };
    Man han1;
    std::cout << han.age << " " << han.weight << std::endl;
    han1 = han;
    std::cout << han1.age << " " << han1.weight << std::endl;
    han.age = 10;
    han.weight = 30.5;
    std::cout << han.age << " " << han.weight << std::endl;
    std::cout << han1.age << " " << han1.weight << std::endl;

}

7. 구조적 프로그래밍 스타일 (C언어)

  • structured programming
  • 계산기 프로그램
  • 기능에 따라 세분
    •  입력기능
    •  계산기능
    •  출력기능
  • Divide and Conquer
    •  나누어 정복
  • 각각의 기능(모듈)을 함수로 구현

8.  

9. 객체지향이라는 것은 자료와 처리동작들을 묶음으로 관리하는 것이다. 

10. 클래스와 객체의 다른 점

  •  "클래스"는 추상적인 개념으로서 특정 종류(혹은 유형)의 모든 가능한 속성과 동작을 나타내며, "객체"는 그 추상적인 개념에 대응하는 구체적인 실체화이다. 

11. 클래스로부터 객체를 만들고, 그 만들어진 객체를 인스턴스라고 한다. (p.36)

12. 자동차 클래스의 객체는 소나타 같은 구체적인 것으로 정해야 한다. (p.37)

13. 클래스를 만드는 것 자체를 캡슐화 라고 한다.

14. 캡슐화는 클래스 안에서만 데이터를 수정하거나 처리한다.

15. 많이 사용하는 객체지향 언어의 상속 문법을 예를 들어 간단히 설명

  • C++:
    C++에서도 extends 대신에 : 연산자를 사용하여 상속 관계를 표현합니다. 아래는 부모 클래스인 Animal을 상속받는 자식 클래스인 Dog의 예시입니다:
class Animal {
    // 부모 클래스의 멤버 변수와 메서드 정의
    // ...
};

class Dog : public Animal {
    // 자식 클래스에 추가적인 멤버 변수와 메서드 정의
    // ...
};

16. 객체지향 언어에서 다형성(Polymorphism)은 같은 이름의 메서드나 연산자가 다른 형태로 동작할 수 있는 능력을 의미합니다. 이는 상속과 관련된 개념으로, 부모 클래스와 자식 클래스 간의 관계에서 발생하는 특징입니다.

public class Main {
   public static void main(String[] args) {
       Animal animal1 = new Dog();
       Animal animal2 = new Cat();

       animal1.makeSound(); // "개가 짖고 있습니다." 출력
       animal2.makeSound(); // "고양이가 울고 있습니다." 출력
   }
}

17. 약식 클래스 다이어그램 그리기

18. 

  • public: (내용)
    • 어디서나 접근 가능하다.
class Dog{ // class명
private: // 속성
	int age; // 멤버변수
public:
	int getAge(); // 멤버함수
};
Dog dog1; // 객체

19. 클래스 멤버의 접근 권한

#include <iostream>
class Man {
//public:   다음에 나오는 변수나 함수는 어디서나 접근 가능
private:    //외부에서 접근 불가. 클래스 내에서만 접근 가능(사용, 입출력)
    int age;    //멤버
    double weight;
public:
    int getAge() {  //출력, 리턴함수
        return age;
    }
    void setAge(int a) {  //입력, 대입함수
        age = a;
    }
    void run() {
        std::cout << "달려!\n";
    }
};
int main()
{
    Man han ;
    han.setAge(10);
    han.run();
    std::cout << han.getAge();
    han.run();

//    std::cout << han.age << " " << han.weight << std::endl;
}

 

참고자료 : 한성현 교수님 수업자료

댓글