무리스

반응형

[패스트캠퍼스 수강 후기] {C++실력완성} 100% 환급 챌린지 {25} 회차 미션

 

안녕하세요. 무리스입니다.

오늘도 야근을 하고 집에 와서 씻고 바로 컴퓨터 앞에 앉아

프로그래밍 공부를 하려고 합니다. 회사에서도 컴퓨터 앞에 계속 앉아있고

집에서도 공부한다고 컴퓨터 앞에 앉아있으니 하루 종일 컴퓨터만 보게 되네요.

루테인이라도 눈 건강을 위해 사먹어야 할 듯 싶네요.

 

오늘 25회차는 15강, 16강, 17강 순으로 진행됩니다.

자 그럼 15강부터 환불챌린지 데일리 미션을 시작하도록 하겠습니다.

15강에서는 연산자 오버로딩 - 첨자 연산자 오버로딩에 대해서 배워보도록 하겠습니다.

 

#include <iostream>

using namespace std;

class Vector
{
public:
   float x, y, z;
   
   Vector(float x, float y, float z)
      : x(x), y(y), z(z)
   {
   
   }
   float operator[](int index)
   {
      if (index < 1)
         return x;
      if (index == 1)
         return y;
      return z;
   }
};

int main()
{
   Vector v{1, 2, 3};
   cout << v[0] << endl;
   cout << v[1] << endl;
   cout << v[2] << endl;
   cout << v[3] << endl;
   
   v[1] = 1000;
   
   cout << v.y << endl;
            

첨자 함수는 외부에서 수정할 수 있으려면 함수를 두 개 만들어 줘야 합니다.

다음 16강에서는 연산자 오버로딩 - 대입 연산자 오버로딩 / 복사 생성자에 대해서 알아보도록 하겠습니다.

먼저 복사 생성자에 대해서 알아보겠습니다.

#include <iostream>

using namespace std;

int func(int x)
{
   return x;
}

int main()
{
   int a = 1;
   int b = a;
   b = a;
   
   func(a);
}

이런식으로 복사와 대입은 다르다는 것을 알아두시면 되겠습니다.

 

복사 생성자와 대입 연산자는 기본적으로 디폴트로 구현이 되어있습니다.

Person을 한번 만들어보겠습니다.

#pragma warning(disable: 4996)
#include <iostream>
#include <cstring>

using namespace std;

class Person
{
private:
   float _weight;
   float _height;
   char _name[10];
   
public:
   Person() {}
   Person(float weight, float height, const char* name)
      : _weight(weight), _height(height), _name{}
   {
      strcpy(_name, name);
   }
   
   void print() const
   {
      cout << _name << endl;
      cout << _weight << endl;
      cout << _height << endl;
};

int main()
{
   Person person0{ 45.f, 153.f, "Json"};
   Person person1 = person0;
   Person person2;
   person2 = person0;
   
   person0.print();
   person1.print();
   person2.print();
}

다 똑같이 출력된 것을 확인했습니다.

 

다음 17강에서는 연산자 오버로딩 - 변환 연산자 오버로딩 / 변환 생성자 explicit에

대해서 배워보도록 하겠습니다.

#incldue <iostream>

using namespace std;

class String
{
public:
   String(const char* chars)
   {
   
   }
};

int main()
{
   String s = String("abc");
}

 

어렵네요. explicit 이런건 처음 보는 용어인데 용어 설명이 없는 점이 아쉽습니다.

인터넷을 다시 찾아뵈야 되는 그런.. 

가끔 초보자 입장에서는 강의 듣기가 힘든 부분들이 있네요.

주말에 복습하기 위해 체크해 놓겠습니다.

 

이번주도 벌써 목요일이 지나가네요.

내일은 금요일이라 기분이 좋네요.

특히 내일은 휴가도 썼기 때문에 오늘 밤은

여유로운 밤을 보낼 수 있을 것 같아요.

 

환불챌린지 데일리미션도 이번주면 끝나는 듯 합니다 !

이번 주말까지 유종의 미를 잘 거둬서 최종 과제 미션에 

도전할 수 있도록 긴장의 끈을 놓치않겠습니다.

그럼 오늘 25회차 학습기록을 마치겠습니다.

 

내일은 26회차 데일리 미션으로 찾아뵙겠습니다.

이상입니다.

 

 

패스트캠퍼스 C++ 강의 링크를 걸어두겠습니다. 참고하세요~

올인원 패키지 : C++ 실력 완성 bit.ly/33beaFj

 

C++ 실력 완성 올인원 패키지 Online. | 패스트캠퍼스

선데이토즈, ICON Foundation 출신 Core 개발자가 직접 알려주는 C++의 모든 것. 애니팡 게임을 직접 만들어 보며 어려운 C++의 원리를 이해하고 실무에서 쓸 수 있는 수준까지 만들어 드립니다.

www.fastcampus.co.kr

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading