C++ 문법
C++문법 1-5, 1-6강 일부, C언어 기초 라이브(복습) 세션
Calss
많은 코드는 유지 보수에 더 많은 시간이 소요된다.
이를 위해 필요한 것은
재사용성, 필수 과정이 쉽게 수정되지 않아야 한다는 특징 등이 있다.
세부 사항은 숨겨져 있어야 한다.
시험 성적/자동차 예시
이것을 위해 필요한 것이 class (객체 지향 프로그래밍)
===
class 이름 {
맴버(변수, 함수)
}
===
헤더 파일과 소스 파일로 나눠지는 것을 이걸로 알 수 있다.
public/private
기본 값은 private 이며 :: 연산자에 접근 할 수 있는 권한이 없다.
일반적으로 멤버함수는 Public 멤버 변수는 Private
=====
#include <iostream>
#include <algorithm> //max 함수 사용
#include <string>
using namespace std;
class Student
{
public:
//동작 정의(이를 멤버함수라고 합니다)
double getAvg();
int getMaxScore();
private:
//데이터 정의(이를 멤버변수라고 합니다.)
int kor;
int eng;
int math;
};
double Student::getAvg()
{
return (kor + eng + math) / 3.0;
}
int Student::getMaxScore()
{
return max(max(kor, eng), math);
}
int main()
{
Student s;
s.getAvg();
return 0;
}
=====
getter, setter
맴버 변수를 변경할 때 setter를 값을 가져올 때 geter를 사용한다.
this math -> 클래스 내의 매스
==========
#include <iostream>
#include <algorithm> //max 함수 사용
#include <string>
using namespace std;
class Student
{
public:
//값이 주어지지 않을경우 기본값을 할당하는 생성자
Student(int math = 32, int eng = 17, int kor = 52)
{
this->math = math;
this->eng = eng;
this->kor = kor;
}
double getAvg();
int getMaxScore();
//동작 정의(이를 멤버함수라고 합니다)
void setMathScore(int math)
{
this->math = math;
//this.math = math;와 동일
}
void setEngScore(int eng)
{
this->eng = eng;
//this.eng = eng;와 동일
}
void setKorScore(int kor)
{
this->kor = kor;
//this.kor = kor;와 동일
}
int getMathScore() { return math; }
int getEngScore() { return eng; }
int getKorScore() { return kor; }
private:
//데이터 정의(이를 멤버변수라고 합니다.)
int kor;
int eng;
int math;
};
double Student::getAvg()
{
return (kor + eng + math) / 3.0;
}
int Student::getMaxScore()
{
return max(max(kor, eng), math);
}
int main()
{
Student s;
//아래와 같이 사용할 수도 있음
//Student s(1);
//Student s(1, 2);
//Student s(32, 52, 74);
//평균 최대점수 출력
cout << s.getAvg() << endl;
cout << s.getMaxScore() << endl;
return 0;
}
==========

소스 파일과 헤더 파일을 분리하는 이유는 중복 정의를 피하기 위해서 이다.
==============================
1-6
기본 클래스(부모 클래스), 파생클래스(자식 클래스)
protected -> 외부 접근 -X, 상속받은 클래스는 접근 가능
====================
#include <iostream>
using namespace std;
/*7시30분 기상 9시까지 내배캠 출석로그인
13시와 18시가 되면 1시간 식사시간
21시 퇴실 24시에는 취침*/
int main() {
int WakeUpTime;
cout << "WakeUpTime" << endl;
cin >> WakeUpTime;
if (WakeUpTime < 9) {
cout << "good boy Have a good day" << endl;
} else cout << "Wake Up earlier!" << endl;
int Time;
for(int i i=10, i < 24 , i++;) {
Time = i;
cout << Time << endl;
if (i== 12) {
cout << "It's Lunch Time!" << endl;
}else if (i==18) {
cout << "Ti's Dinner Time!" << endl;
}else if (i==21) {
cout << "It's Leave Work Time!" << endl;
}
return 0;
}
====================
라이브 세션
암기는 중요하니까 매번 숙제로 제출된다.











프로그래밍을 잘하는 방법
*인내 - 프로그래밍 책을 처음부터 끝까지 읽어보는 것 (괜찮은 것 같다)
읽기
오류/버그 - 그냥 버그 생겼다고 알려주는 것만 보는 게 아니라 흐름을 읽을 수 있어야 한다.(오류 부분의 위아래부터)
출력 C언어
printf( ); - f-format / (" " , );
%d, %f, %c, %p
정수(십진법), 실수, 캐릭터(단일 문자), 포인터(주소)
int 변수 =10;
printf("n: %d", 변수); - n : 10
형식은 외워야만 한다.
언리얼도 C++기 때문에 블프가 아닌 C++를 활용할 때 이것이 사용된다.
변수 == 메모리
int - 정수, flat - 실수, char - 문자
케멀 케이스
===
배열
int arr[]
자료형 이름 []


===
#include <stdio.h>
int main(void)
{
printf("Hello, World!\n");
return 0;
}
===
#include <stdio.h>
int main(void)
{
int a, b;
scanf("%d %d", &a, &b);
printf("%d + %d = %d\n", a, b, a + b);
return 0;
}
===
#include <stdio.h>
int main(void)
{
int a, b;
int sum, diff, mul;
scanf("%d %d", &a, &b);
sum = a + b;
diff = a - b; // a - b
mul = a * b;
printf("합: %d\n", sum);
printf("차: %d\n", diff);
printf("곱: %d\n", mul);
return 0;
}
===
#include <stdio.h>
int main(void)
{
int arr[5];
int i;
for (i = 0; i < 5; i++)
{
scanf("%d", &arr[i]);
}
for (i = 0; i < 5; i++)
{
printf("%d", arr[i]);
if (i != 4)
printf(" ");
}
printf("\n");
return 0;
}
===
#include <stdio.h>
int main(void)
{
int arr[5];
int i;
int sum = 0;
int avg;
for (i = 0; i < 5; i++)
{
scanf("%d", &arr[i]);
sum += arr[i];
}
avg = sum / 5; // 정수 나눗셈
printf("합: %d\n", sum);
printf("평균: %d\n", avg);
return 0;
}
===
관계 연산자
== / = 의 차이
!=, <, >, <=, >=
위의 종류들은 암기하고 있어야 한다.
&& - and
|| - or
else if - 앞의 if가 틀리면 / else - 나머지
scanf - &변수 -> &변수 의 주소 값을 참조하겠다. (스캔 받은 값을 이 주소에 참고[넣겠]하겠다)
====================
클래스 (청사진, 설계도, 붕어빵 기계) -> 객체(클래스가 메모리에 올라간 형태)
객체, 인스턴스화
생성자
getter, setter
맴버 변수를 변경할 때 setter를 값을 가져올 때 geter를 사용한다.
this math -> 클래스 내의 매스
<stdio.h> - stdio라는 기본 제공되는 헤더파일을 활용하는 것이었다.
using namespace std; 를 사용해야 cin cout을 사용할 수 있고 cout << / cin >> 을 지켜야한다.
구조체는 public 클래스는 private를 기본으로 가진다.
====
반환 값.
함수의 전과 후의 프로그램의 상태가 바뀌는 게
글을 쓰는 것. 허공에 글을 쓰는 것(보이드)를 사용하는 것).
꼭 써야 하는 것은 아니지만 다른 함수 등에 익숙해지고 그것을 계속 사용하다 필요가 느껴지면 써보는 것도 괜찮다.
====
A. x - A클래스에 상속된 x
과제는 다음 주인 16(화)이니까 벌써 머리를 뜨겁게 할 필요는 없다.

.
'TIL' 카테고리의 다른 글
| 25.12.10일자 - TIL (0) | 2025.12.10 |
|---|---|
| 25.12.09일자 -TIL (0) | 2025.12.09 |
| 25.12.05일자 - TIL (0) | 2025.12.05 |
| 25.12.04 - TIL (1) | 2025.12.04 |
| 25.12.03일자 - TIL (0) | 2025.12.03 |