[패스트캠퍼스 수강 후기] {C++실력완성} 100% 환급 챌린지 {22} 회차 미션
안녕하세요. 무리스입니다.
한 주의 시작 월요일이 시작되었네요.
이번 한 주도 즐겁게 C++ 공부를 시작해봅시다.
오늘은 패스트캠퍼스 환불챌린지 데일리미션 22회차입니다.
22회차에서는 06강, 07강, 08강 순으로 진행됩니다.
06강에서는 클래스 - this 포인터에 대해서 배워보도록 하겠습니다.
클래스 내의 멤버 변수나 멤버 함수에 접근이 가능합니다.
this 포인터는 해당 객체 자체를 가리키는 포인터인데요,
기존 멤버 변수, 멤버 함수에 접근할 때 this 포인터를 통해서 접근할 수 있습니다.
코드를 통해 알아보도록 하겠습니다.
#include <iostream>
using namespace std;
class Person
{
private:
float weight;
float height;
public:
Person(float weight, float height)
: weight(weight), height(height)
{
}
void loseWeight(float weight)
{
this_weight -= weight;
if (this->weight <0)
this->weight =0;
}
void skipMeals(int times)
{
this->loseWeight(times * 0.5f);
}
};
int main()
{
Person person(67.3f, 172.3f);
}
또, 다른 코드로는
#include <iostream>
using namespace std;
class Person
{
private:
float weight;
float height;
public:
Person(float weight, float height)
: weight(weight), height(height)
{
}
float getBMI()
{
return weight / (height * 100 * height * 100);
}
Person& complete(Person& person)
{
if (this->getBMI() < person.getBMI())
return *this;
else
return person;
}
void doCeremony()
{
cout << name << " win!!" << endl;
}
};
int main()
{
Person person0(67.f, 172.3f, "david");
Person person1(58.2f, 167.3f, "daniel");
person0.complete(person1).doCeremony();
}
출력값을 보면 daniel이 체지방 지수가 더 낮다고 하네요.
다음 07강에서는 클래스 - const에 대해서 배워보겠습니다.
const 복습 코드를 써보자면
#include <iostream>
using namespace std;
class Person
{
Private:
const string _name = "abc";
public:
Person(const string& name) : _name(name)
{
}
};
int main()
{
}
이런 식으로 const 코드를 작성해봤습니다.
이번에 작성할 const 코드는 아래와 같습니다.
#include <iostream>
using namespace std;
class Person
{
private:
const string _name;
float _weight;
float _height;
public:
Person(const string& name, float weight, float height)
: _name(name), _weight(weight), _height(height)
{
}
float getWeight(/* const Person* this*/) const
{
return _weight;
}
};
int main()
{
const Person person0("Daniel", 56.f, 174.f);
person0.getWeight();
}
일반 pointer를 const pointer로 변환이 되는데
const pointer는 일반 pointer로 변환이 안됩니다.
이것만 기억하시면 될 것 같네요.
다음은 08강 클래스 - 정적 멤버에 대해서 알아보겠습니다.
멤버 변수나 멤버 함수 앞에 static을 붙이면 정적 멤버가 됩니다.
그러면 정적 공간에 저장을 하게 되고, 프로그램 실행 중에 메모리 할당이 한번 주어지고
프로그램이 종료될 때 메모리가 해제되는 것입니다.
이번에는 헤더파일과 cpp파일로 나눠서 설명을 해야될 것 같습니다.
먼저 헤더파일에서 Person.h을 정의해보겠습니다.
#pragma once
class Person
{
private:
static int num;
public:
Person();
};
Person.cpp 파일에서도 구분하겠습니다.
#include "Person.h"
#include <iostream>
int Person::num = 0;
Person::person()
{
num++;
}
voids Person::print()
{
std::cout << num << std::endl;
}
main.cpp 파일에서는
#include <iostream>
#include <"Person.h"
using namespace std;
int main()
{
Person p0;
Person p1;
p0.print();
p1.print();
}
main에서 실행을 해주면
오늘 강의는 20분내의 짧은 강의였습니다.
개인적으로 좀 어려운 부분이라고 생각합니다.
복습이 필요할 것 같아서 체크에 두었습니다.
그럼 22회차 월요일 학습 기록을 마치겠습니다.
오늘도 공부하느라 고생하셨습니다.
내일 23회차로 다시 찾아뵙겠습니다.
이상입니다.
패스트캠퍼스 C++ 강의 링크를 걸어두겠습니다. 참고하세요~
올인원 패키지 : C++ 실력 완성 https://bit.ly/33beaFj
[패스트캠퍼스 수강 후기] {C++실력완성} 100% 환급 챌린지 {24} 회차 미션 (1) | 2020.11.25 |
---|---|
[패스트캠퍼스 수강 후기] {C++실력완성} 100% 환급 챌린지 {23} 회차 미션 (0) | 2020.11.24 |
[패스트캠퍼스 수강 후기] {C++실력완성} 100% 환급 챌린지 {21} 회차 미션 (0) | 2020.11.22 |
[패스트캠퍼스 수강 후기] {C++실력완성} 100% 환급 챌린지 {20} 회차 미션 (1) | 2020.11.21 |
[패스트캠퍼스 수강 후기] {C++실력완성} 100% 환급 챌린지 {19} 회차 미션 (2) | 2020.11.20 |