*본 계시물은 한성현 교수님 시간에 나온 내용들입니다.*(smile han의 프르그래밍)
챗gpt에게 객체지향언어를 많이사용하는 순으로 알려다라고 해보았습니다.
소프트웨어 가격이 줄어들지 않아서 이를 해결하기위한 방법으로 객체지향 프로그래밍이있다.
기존 구조적플그래밍의 문제점. 처리동작과 자료사이의 관계가 서로 밀접하게 연관되지 않음.
객체 기반으로하는 소스에서 변수와 함수를 메소드 라고한다.
c++은 객체지향 언어라기보단 다중 패러다잉 언어이다. 여러가지가 섞인 형태.
클래스,객체,인스턴스의 차이점을 알려달라고해보았다.
객체의타입( 설계도)는 클래스이고
객체는 그 설계도를 보고 만든 집이다.
객체는 유일하게 존재하여 값으로 대입할 수 있는 것, 사람으치면 흑인,백인이 아닌 "나" (학번, 20살,인덕대를다니는)
클래스는 캡슐화를 하고 그 안에 자료와 동작이 들어가있다.
부모클래스, 자식클래스. (상속)
다형성= 이름을 하나만쓴다.
매 시험마다 나오는 클래스 다이어그램.
3칸으로 나누어, 맨윗칸 클래스 이름은 자동차, 중간은 자동차를 특징지을 수 있는 변수를 쓴다.
마지막칸에는 자동차가 하는 행위를 마지막칸에 쓴다.(함수)
(만들어보기)
----------------------------
고양이
-----------------------------
털색
품종
나이
이름
주인이름
사는곳
(고양이를 특징지을 수 있는 변수)
----------------------------------
먹는다
쥐를쫒는다
점프를 한다
유연하다
12/31일이 지나면 1살 먹는다
배변활동을한다
냐옹하고 운다
(행위 함수)
-----------------------------------------------\
객체지향 용어 언어마다 비교
c++에선 감추는것은 private프라이베잇에 쓰고
누구나 볼수 있고 접근할 수 있는건 public퍼블릭, 자식에게만 접근 가능하게하는 protected가 있다.
강아지코코로 간단하게 만들어봄.
struct (구조체)를 써도 된다.
c++의class에는 변수뿐아니라, 함수도 넣을 수 있다.
언어별 객체만드는법
c언어의구조체에서는 변수만 넣을 수 있다-->>( c++의 class는 변수와 함수를 넣는것이 가능.)
c언어(왼쪽은)구조체로 변수만 넣을 수 있지만, c++에선 변수와 함수를 쓸수있기에 더 다양한 결과물을 낼 수 있다
c언어에서구조체는 public(보여짐)이 기본이고, c++에선 private을 기본으로 쓰고있다(숨겨짐).
c언어의 구조체와 c++의 구조체는 다르다.
확장자가c로 되어있다면(c언어에서는) strcut를 꼭 써야하지만, cpp확장자(c++)에서는 strcut를 안쓰고, Man만 써도 된다.(차이점)
구조체 변수 초기화와 멤버대입.
구조체에 변수들을 대입하면 멤버들이 다 복사가 된다.(좋은 특징_장점)
챗gpt에게 c++에서 구조체와class 중 뭐를 언제 써야하나 알려달라고 해보았다.