251217 TIL - C++ 8일차
2025. 12. 17. 20:41ㆍ언리얼 7기 본캠프
오늘은 어제 제대로 익히지 못했다고 판단했던 2-1을 다시 보고 2-2 또한 수강하여, 스택메모리, 힙메모리, 댕글링 포인터, 스마트포인터, 얕은복사와 깊은복사, 함수 오버로딩, 템플릿 등에 대해서 익혔음
전반적으로 지금까지 익혔던 코드들에 더해서 유연성을 추가해주는 과정이라고 생각했고, 이걸로 코드를 상당히 더 유연하고 편하게 짤 수 있을것이라고 생각됨
앞으로 더더욱 발전해서 효율적인 코드를 쓰는 사람이 될 수 있었으면 좋겠음
#include <iostream>
using namespace std;
class Base {
public:
virtual ~Base() { // 소멸자를 자식클래스가 받으려면 가상함수로 지정해줘야 합니다
cout << "~Base" << endl;
}
};
class Derived : public Base {
public:
~Derived() {
cout << "~Derived" << endl;
}
};
int main() {
Base* p = new Derived();
delete p;
}
#include <iostream>
using namespace std;
class Animal {
public:
virtual void Speak() { // 가상함수로 변경
cout << "Animal sound\n";
}
};
class Dog : public Animal {
public:
void Speak() override { // 오버라이드 추가해서 오버라이드
cout << "Woof!\n";
}
};
int main() {
Animal* p = new Dog();
p->Speak();
delete p;
}
#include <iostream>
using namespace std;
class Base {
public:
virtual ~Base() { // 부모클래스의 소멸자에 virtual을 붙여야 자식클래스를 메모리에서 같이 해제시킬 수 있음
cout << "~Base" << endl;
}
};
class Derived : public Base {
public:
~Derived() {
cout << "~Derived" << endl;;
}
};
int main() {
Base* p = new Derived();
delete p;
}
#include <iostream>
#include <memory>
using namespace std;
struct B; // 전방 선언
struct A {
shared_ptr<B> b;
~A() { cout << "~A" << endl; }
};
struct B {
weak_ptr<A> a; // A와 B가 서로 참조를 하고있어서 main이 끝나도 해제되지 않음. 둘 중 하나를 weak로 바꿔주면 해결됨
~B() { cout << "~B" << endl; }
};
int main() {
auto a = make_shared<A>();
auto b = make_shared<B>();
// 서로 참조(레퍼런싱) 하고 있음.
a->b = b;
b->a = a;
cout << "End of main" << endl;
}
#include <iostream>
using namespace std;
template <typename T1, typename T2>
auto Add(T1 a, T2 b)
{
return a + b;
}
int main()
{
// cout << Add(3, 3.5) << endl;
return 0;
}
#include <iostream>
using namespace std;
template<typename T>
void Swap(T& a, T& b)
{
T temp = a;
a = b;
b = temp;
}
int main()
{
int x = 10;
int y = 20;
Swap(x, y);
cout << "x: " << x << ", y: " << y << endl;
// 기대 결과: x: 20, y: 10
}'언리얼 7기 본캠프' 카테고리의 다른 글
| 251219 TIL - C++ 10일차 (0) | 2025.12.19 |
|---|---|
| 251218 TIL - C++ 9일차 (0) | 2025.12.18 |
| 251216 TIL - C++ 7일차, 새로운 과제 하달 (1) | 2025.12.16 |
| 251215TIL - C++ 6일차 - 과제 제출 (0) | 2025.12.15 |
| 251210 TIL - C++ 4일차 (1) | 2025.12.10 |