과제 2-2 정리, 긴급(?) 라이브 세션(캡슐화 등), C++문법 1-7과제, 2-1 강 , 과제 2-1,2 해설 세션, 16일자 미니과제
흔히 하는 실수 - {} 짝을 놓치는 것. (파생 cpp에서 놓친 부분이 있었음.)
if (조건) \n 변경; 을 {}없이 사용하려면 ;위치를 신경 써야 한다.(앞과 온전히 동일해야 함.)
====================
라이브 세션
캡슐화 / 생성자-소멸자 / 상속, 가상 함수
객체란? 함수와 변수 만으로는 한계가 있기 때문에 사용하는 것.
1. 코드 분리
2. 코드를 현실의 사물처럼 생각하게 해준다. class
객체 지향 -> 생각 / 기계적 코드 -> 생각
구조체와 클래스의 쓰임새차이
캡슐화 : 외부 -> 내 정보에 읽기/쓰기를 제한하고 필요한 것만 가공해서 제공해주는 것.
기본 생성자가 기본으로 있는 취급이며 생성자를 지정해주면 비활성화 되고 기본 생성자를 같이 써두면 둘 다 사용할 수 있게 된다.
파라미터 - 매개변수
Wallet wallet(파라미터);
class Actor { \n public: \n
Actor() { //생성하면 ~~~}
~Actor() { //소멸하면 ~~~}
}
상속 가상함수






==============================
1-7 과제
요구 사항대로 첨삭한 일부
=====
virtual void displayBrand() = 0;// - displayBrand()와 showFeature() 순수 가상 함수를 포함하도록 구현하세요
virtual void showFeature() = 0;
virtual ~Phone() = default;// - 소멸자를 반드시 virtual로 선언하세요 - 앞에 붙이고 뒤에 default를 사용하면 파생 클래스에서 별도 new를 사용하지 않았다면 문제가 없어진다.
Phone* Brand[3] ;// - Phone* 타입의 배열을 생성하여 Samsung, Apple, Xiaomi 객체를 저장
Brand[0] = new Samsung();
Brand[1] = new Apple();
Brand[2] = new Xiaomi();
for (int i = 0; i < 3; i++) {// - 반복문을 사용하여 각 객체의 displayBrand()와 showFeature()를 호출
Brand[i]->displayBrand();
Brand[i]->showFeature();
}
for (int j = 0; j < 3; j++) {// - 반복문을 사용하여 메모리 해제를 위해 delete 호출
delete Brand[j];
=====
===============================
C++문법 2-1 강
옷장 - 메모리
스택 메모리는 {}안에 있을 때 }를 만나 종결되는 순간 메모리에서 날아간다.
인자, 변수 대부분이 스택 메모리에 사용된다.
=====
옆 동네 튜?터님의 과제
문제 1단계: main에서만 구현하기 (변수 직접 수정)
목표
main() 안에서만 코드를 작성해서 입금/출금을 수행하고, 중간/최종 잔액을 출력하세요.
요구사항
시작 잔액 balance = 0
아래 시나리오를 순서대로 수행:
1000원 입금
300원 출금
1000원 출금 시도 (잔액 부족이면 실패 메시지)
각 단계마다 잔액 출력
제한조건
함수 사용 금지(오직 main 내부)
반복문/클래스 사용 금지(필요 없음)
체크포인트
if문으로 “잔액 부족”을 판정할 수 있는가?
잔액 변경이 의도대로 반영되는가?
=====
과제 2-1,2 해설 세션
다크 세라핌
최적화란 소통 비용을 줄이는 것
CPU -> GPU - drawcall 이라고 부른다고 알기만 하면 된다.
CPU -> RAM - new를 사용해본 것이 이 작동이다.(반대는 delete)
CPU -> SSD - File ready/write - 이것을 줄이는 것이 중요하다.
생명 주기에 대한 이야기.
{
int* b = new int;
deletd b;
}
int * a = new int
if (a) { ---- } => 주소 값이 0이 될 수 없으므로 동작한다.
nullptr -> 이면 0으로 취급되므로 돌지 않음.
do while () - 한번 실행하고 while을 만족하는지 체크하는 문
리펙터링 - 마틴 파울러(한빛미디어)
클린 코드 - ~~ 마틴
의사코드를 작성해서 내려가는 방법(역순으로 하신다.)
switch
continue.
bool A (int x, int y)
x>0, y>0 \n return ture;
enum CMD
===
extend 상속=확장
순수 가상 함수


각각 생성하지 않고 클래스를 만들기 위한 간단한 툴이 지원된다.
====================
3,4번 과제 발제
앞으로 계속 모르는 것을 만나게 될 것이다.
* 의사 코드를 쓰고 이걸 코드로 바꾸는 연습을 해야 구현을 직접 해나가는 데에 어려움이 적어질 수 있다.
int 전용 Add 함수 int Addint(int a, int b) {return a+b;}
double 전용 Add 함수 double AddDouble(double a, double b) { return a+b}
float 전용 Add 함수 float AddFloat(float a, float b) { return a+b;}
template 아무 타임이나 받아서 재사용성이 상승한다
template<typename T> \n T Add(T a, T b) {return a+b;}
* delete 한 후 비웠다는 것을 명시해줘야 다시 불러오려고 시도할 때 오류가 나지 않는다.
===
아틀리에
===================
25.12.16 미니 과제


.
'TIL' 카테고리의 다른 글
| 25.12.18일자 - TIL (0) | 2025.12.18 |
|---|---|
| 25.12.17일자 - TIL (0) | 2025.12.17 |
| 25.12.15일자 - TIL (0) | 2025.12.15 |
| 25.12.12일자 - TIL (0) | 2025.12.12 |
| 25.12.11일자 - TIL (0) | 2025.12.11 |