Hamutaro - Hamtaro 4

C++ 11

[C++] ๊ธฐ์ดˆ ํด๋ž˜์Šค์™€ ํŒŒ์ƒ ํด๋ž˜์Šค์˜ ์ƒ์†

ํด๋ž˜์Šค์˜ ์ƒ์†Person ํด๋ž˜์Šค#ifndef PERSON1_H_INCLUDED#define PERSON1_H_INCLUDED#include #include using namespace std;class Person { string name;public: void setName(const string& n) { name = n; } string getName() const { return name; } void print() const { cout  Student ํด๋ž˜์Šค...#include "Person1.h"//Person ์ƒ์†๋ฐ›์Œclass Student : public Person { string school;public: void setSchool(const strin..

C++ 2024.12.04

[C++] ์—ฐ์‚ฐ์ž ๋‹ค์ค‘์ •์˜

์—ฐ์‚ฐ์ž ๋‹ค์ค‘์ •์˜C++์— ์ •์˜๋œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ์–ธํ•œ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด์— ๋Œ€ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •์˜ํ•˜๋Š” ๊ฒƒ์ฃผ์˜์‚ฌํ•ญ- ์—ฐ์‚ฐ์ž ์˜๋ฏธ๋ฅผ ์ž„์˜๋กœ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค- ์—ฐ์‚ฐ์ž ๊ณ ์œ ํ•œ ํŠน์„ฑ์ด ์œ ์ง€๋˜๋„๋ก ํ•œ๋‹ค๋‹ค์ค‘์ •์˜๋ฅผ ํ•  ์ˆ˜ ์—†๋Š” ์—ฐ์‚ฐ์ž๋ฉค๋ฒ„ ์„ ํƒ ์—ฐ์‚ฐ์ž (.)๋ฉค๋ฒ„์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ ์—ฐ์‚ฐ์ž (.*)์œ ํšจ๋ฒ”์œ„ ๊ฒฐ์ • ์—ฐ์‚ฐ์ž (::)์กฐ๊ฑด ์—ฐ์‚ฐ์ž (? :) ๋‹จํ•ญ ์—ฐ์‚ฐ์ž์˜ ๋‹ค์ค‘์ •์˜ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ 1๊ฐœ์ธ ์—ฐ์‚ฐ์ž ์ „์œ„ ํ‘œ๊ธฐ๋ฒ• ๋‹จํ•ญ ์—ฐ์‚ฐ์ž์˜ ๋‹ค์ค‘์ •์˜์˜ˆ์ œclass IntClass1 { int a;public: IntClass1(int n=0) : a(n) {} //์ƒ์„ฑ์ž IntClass1& operator ++ () { //์ „์œ„ ํ‘œ๊ธฐ ++ ์—ฐ์‚ฐ์ž ๋‹ค์ค‘์ •์˜ ++a; return *this; } int get..

C++ 2024.12.03

[C++] ์ƒ์„ฑ์ž์™€ ์†Œ๋ฉธ์ž

์ƒ์„ฑ์ž ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์ •์˜ํ•˜๋Š” ํŠน์ˆ˜ํ•œ ๋ฉค๋ฒ„ํ•จ์ˆ˜์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ์–ธ ๊ฐ€๋Šฅ์—ฌ๋Ÿฌ๊ฐœ ๋‹ค์ค‘์ •์˜ ๊ฐ€๋Šฅํด๋ž˜์Šค ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธ๋ฐ˜ํ™˜์ž๋ฃŒํ˜• ํ‘œ์‹œ X, ๋ฆฌํ„ด X// ์ƒ์„ฑ์ž ์„ ์–ธ ํ˜•์‹class ClassName {...public: ClassName(fParameterList){ ... } ...};   ์†Œ๋ฉธ์ž ๊ฐ์ฒด๊ฐ€ ์†Œ๋ฉธ๋  ๋•Œ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์ •์˜ํ•˜๋Š” ํŠน์ˆ˜ํ•œ ๋ฉค๋ฒ„ํ•จ์ˆ˜ํด๋ž˜์Šค ์ด๋ฆ„์— ~ ๋ถ™์—ฌ์„œ ์ˆ˜ํ–‰๋ฐ˜ํ™˜์ž๋ฃŒํ˜• ํ‘œ์‹œ X, ๋ฆฌํ„ด X๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์Œ, ํ•˜๋‚˜์˜ ์†Œ๋ฉธ์ž๋งŒ ์ •์˜ ๊ฐ€๋Šฅ// ์ƒ์„ฑ์ž ์„ ์–ธ ํ˜•์‹class ClassName {...public: ClassName(fParameterList){ ... } ~ClassName(){ ... } ..

C++ 2024.11.07

[C++] ์ธ์ˆ˜ ์ „๋‹ฌ ๋ฐฉ์‹ : call-by-value์™€ call-by-reference

call-by-value์‹ค ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ํ˜•์‹ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ์‹float FahrToC(float fahr){ fahr -= 32; // ํ˜•์‹ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ˆ˜์ • return fahr * 5 / 9;}int main(){ float fTemp, cTemp; cout > fTemp; cTemp = FahrToC(fTemp); // ์›๋ณธ์€ ๋ณ€ํ™” ์—†์Œ cout  ์žฅ์  : ์‹ค ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ํ˜•์‹ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ณ„๊ฐœ์˜ ๋ฐ์ดํ„ฐ์ด๋ฏ€๋กœ ๋ถ€์ž‘์šฉ ๋ฐœ์ƒ x๋‹จ์  : ๊ตฌ์กฐ์ฒด์™€ ๊ฐ™์ด ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ๊ฒฝ์šฐ ๋ณต์‚ฌ๋Ÿ‰์ด ๋งŽ์•„์ง call-by-reference์‹ค ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ฐธ์กฐ๋ฅผ ํ˜•์‹ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ „๋‹ฌํ•จ์ˆ˜์—์„œ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฐ›์•„ ์˜ค๋ ค๋Š” ๊ฒฝ์šฐ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋˜๋Š” ๊ตฌ..

C++ 2024.10.14

[C++] l-value์ฐธ์กฐ, r-value์ฐธ์กฐ

์ฐธ์กฐ์–ด๋–ค ๋Œ€์ƒ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’์ฐธ์กฐ ๋ณ€์ˆ˜๋Š” ์ดˆ๊ธฐํ™”๋ฅผ ํ†ตํ•ด ๋ฐ˜๋“œ์‹œ ์–ด๋–ค ๋Œ€์ƒ์„ ์ฐธ์กฐํ•ด์•ผ ํ•จ const ์ฐธ์กฐ์ฐธ์กฐ ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๋Œ€์ƒ์˜ ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์Œint x { 10 };const int& xRef = x;cout   l-value ์ฐธ์กฐ์‹ค์ฒด๊ฐ€ ์žˆ๋Š” ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ฐธ์กฐ// l-value ์ฐธ์กฐ ๋ณ€์ˆ˜์˜ ์„ ์–ธ ํ˜•์‹// TypeName : ์ฐธ์กฐ ๋Œ€์ƒ์˜ ์ž๋ฃŒํ˜•// refVar : ์ฐธ์กฐ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„// varName : ์ฐธ์กฐ ๋Œ€์ƒTypeName& refVar = varName;  l-value ์ฐธ์กฐ ๋ณ€์ˆ˜ ์˜ˆ์‹œ int a = 10, b = 20;int& aRef = a;cout   r-value ์ฐธ์กฐ์‚ฌ์šฉํ•œ ํ›„์—๋Š” ๊ทธ ๊ฐ’์„ ๋” ์ด์ƒ ๊ฐ€์ง€๊ณ  ์žˆ์„ ํ•„์š”์—†๋Š” ๋Œ€์ƒ์„ ์ฐธ์กฐ๊ฐ์ฒด์˜ ๊ฐ’์„ ๋‹ค๋ฅธ ๊ฐ์ฒด๋กœ ์ด๋™ํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ

C++ 2024.10.07

[C++] ํฌ์ธํ„ฐ์™€ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

ํฌ์ธํ„ฐ์–ด๋–ค ๋Œ€์ƒ์ด ์œ„์น˜ํ•œ ๊ณณ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜// ํฌ์ธํ„ฐ ์„ ์–ธ ํ˜•์‹// TypeName* ptrVar;int* iPtr; ํฌ์ธํ„ฐ๊ฐ€ ์œ ํšจํ•œ ๋Œ€์ƒ์„ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•œ ํ›„ ์‚ฌ์šฉํ•ด์•ผ ํ•จint a;int* iPtr = &a; // a๋ฅผ ๊ฐ€๋ฆฌํ‚ด*iPtr = 10; // a์˜๊ฐ’ 10  ํฌ์ธํ„ฐ ์‚ฌ์šฉ ์˜ˆ์‹œ #include using namespace std;int main(){ int a = 10; int* ptr; ptr = &a; // ptr์— a์˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ์Œ cout   ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹นํ”„๋กœ๊ทธ๋žจ ๋™์ž‘ ์ค‘์— ๊ธฐ์–ต๊ณต๊ฐ„์˜ ํ•„์š”์„ฑ ๋ฐ ์†Œ์š”๋Ÿ‰์„ ๊ฒฐ์ •ํ•˜์—ฌ ํ•„์š”ํ•œ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๋Š” ๊ฒƒํฌ์ธํ„ฐ ๋ณ€์ˆ˜๊ฐ€ ํ• ๋‹น๋œ ๊ธฐ์–ต ๊ณต๊ฐ„์„ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•จ๊ธฐ์–ต ๊ณต๊ฐ„์˜ ์ƒ์„ฑ ์‹œ์  : new ์—ฐ์‚ฐ์ž ์‹คํ–‰ ์‹œ์ ๊ธฐ์–ต ๊ณต๊ฐ„์˜ ..

C++ 2024.10.07

[C++] ๊ตฌ์กฐ์ฒด

๊ตฌ์กฐ์ฒด์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ž๋ฃŒํ˜•์˜ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ์ž๋ฃŒํ˜•์„ ์ •์˜ํ•œ ๊ฒƒ// ๊ตฌ์กฐ์ฒด ์„ ์–ธstruct StructName { Type1 item1; Type2 item2; ...};// ์˜ˆ์‹œ1 - 2์ฐจ์› ์ขŒํ‘œstruct C2dType { double x, y;};// ์˜ˆ์‹œ2 - ์›struct CircleType { C2dType center; double radius;};   ๊ตฌ์กฐ์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๊ตฌ์กฐ์ฒด์™€๋Š” ๋ณ„๊ฐœ์˜ ํ•จ์ˆ˜๋กœ ์ •์˜ํ•จ// ์˜ˆ์‹œ - ์›์˜ ๋ฉด์  ๊ตฌํ•˜๊ธฐ// ์›์˜ ๋ฉด์  ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜double circleArea(CircleType c){ return c.radius * c.radius * PI;}// ๋ฉ”์ธ ํ•จ์ˆ˜int main(){ CircleTy..

C++ 2024.10.07

[C++] ํ•œ์ •์–ด const์™€ constexpr

const ํ•œ์ •์–ด๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๊ฒŒ ํ•จ์ดˆ๊ธฐํ™”๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๊ฐ’์„ ์ •ํ•  ์ˆ˜ ์žˆ์Œconst double PI {3.14159};  constexpr ํ•œ์ •์–ด๊ทธ ๊ฐ’์„ ์ปดํŒŒ์ผํ•  ๋•Œ ํ‰๊ฐ€์‹คํ–‰ ์ค‘ ๊ฐ’์„ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์— ๋น„ํ•ด ํšจ์œจ์ ์œผ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จint a;std::cin >> a;const int b = 20;const int C1 = a; //cin์„ ํ†ตํ•ด ์ž…๋ ฅ๋œ a์˜ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”constexpr int C2 = a+10; //์˜ค๋ฅ˜ : ์ปดํŒŒ์ผ ์‹œ a์˜ ๊ฐ’์„ ์•Œ ์ˆ˜ ์—†์Œconstexpr int C3 = b+100; //b+100์„ ์ปดํŒŒ์ผ ์‹œ์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Œconstexpr int C4 = C1*2; //์˜ค๋ฅ˜ : ์ปดํŒŒ์ผ ์‹œ C1์˜ ๊ฐ’์„ ์•Œ ์ˆ˜ ์—†์Œ  constexpr ํ•จ์ˆ˜๋ชจ๋“  ์ธ์ˆ˜๊ฐ€ constexpr์ธ ..

C++ 2024.10.07

[C++] ๋ณ€์ˆ˜์™€ ์ž๋ฃŒํ˜• ๋ณ€ํ™˜ (๋ฌต์‹œ์  ํ˜•๋ณ€ํ™˜, ๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜)

C++ ๋ณ€์ˆ˜์ž๋ฃŒํ˜• ์ถ”๋ก  ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฐ’์˜ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•์„ ์ถ”๋ก auto i(10); //int i(10)๊ณผ ๋™์ผ ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ ์˜์—ญ(scope)//s1.cppint a; //์„ ์–ธ๋œ ์ดํ›„ ํ”„๋กœ๊ทธ๋žจ์˜ ์ „์ฒด ์˜์—ญ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅstatic int b{10}; //์„ ์–ธ๋œ ์ดํ›„ ์†Œ์† ํŒŒ์ผ์˜ ์ „์ฒด ์˜์—ญ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅint f(){ int c{20}, d{30}; //์„ ์–ธ๋œ ์ดํ›„ ์†Œ์† ๋ธ”๋ก์˜ ์ „์ฒด ์˜์—ญ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ { //์„ ์–ธ๋œ ์ดํ›„ ์†Œ์† ๋ธ”๋ก์˜ ์ „์ฒด ์˜์—ญ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ int d{40}; int e{50}; }}//s2.cpp//extern : ๋‹ค๋ฅธ ์–ด๋”˜๊ฐ€์— ์„ ์–ธ๋˜์–ด ์žˆ์Œextern int a;static int b{50};int g(){ ...

C++ 2024.10.01