홍정모의 따라하며 배우는 C++

홍정모의 따라하며 배우는 C++

(53개의 수강평)

1483명의 수강생

77,000원

PP TREE
평생
입문, 초급
수료증
201개 수업, 총 47시간 17분
Wishlist
백윤기 프로필

19_5_1~100까지의 합 구하기 질문 백윤기 4일 전

선생님께서, 강의중에 쓰레드 두개가 각각 1~50, 51~100까지 더하는 걸 해보라고 하셨었는데.

저는 아래와 같이 만들어 봤습니다. 

https://pastebin.com/nftTHgmd

 

여기서 54~55번 줄의 아래 코드를 수행 시

std::async(sum_a_to_b, 1, 50);
std::async(sum_a_to_b, 51, 100);

결과는 잘 나오는데, 이런 경고창이 함께 뜨더라구요.

warning C4834:  'nodiscard' 특성이 포함된 함수의 반환 값을 버리는 중

 

아무래도 선생님께서 영망 마지막에 말씀하신,

async 는 퓨처와 연결해주지 않으면 시퀀셜하게 실행된다라는 점 때문인 것 같습니다.

그래서 auto로 선언을 해서 퓨처와 연결을 해줬더니이번에는 cout 출력이 제대로 되지 않더라구요...!

 

왜 그런 건지 알 수 있을까요?

 

 

1
Jay Kang 프로필

C++ 철학부분에서 Jay Kang 4일 전

유용한 기능을 추가하는 것이 오용보다 중요하다

이 부분에서 질문이 있습니다.

 

오용보다 중요하다는 것이, 

약간 오용의 위험성이 있더라도 유용한 기능을 추가하는 실험적 시도를 권장한다는 뜻인가요?

1
하가현 프로필

8_2강 질문입니다. 하가현 5일 전

안녕하세요,

복습중에 궁금한점이 생겨서 질문드립니다.

12:08 26번째 라인에 int& getDay(){return m_day;} 가 있는데 매개변수에 참조 붙은것은 7_3강에서 나왔는데 함수자체에 붙은 것은 어떤강의에서 설명해주셨는지 못 찾겠어요.

분명 어딘가에서 설명해주신것 같은데 강의 여러개 뒤져봐도 힘드네요. 

무슨 기능을 하는지 궁금합니다.

 

감사합니다.

 

1
백윤기 프로필

19_01_람다함수편 질문이 있어요~ 백윤기 5일 전

안녕하세요 홍정모 선생님,

항상 좋은 강의 잘 듣고 있습니다.

오늘 19_01_람다함수편을 들었는데.

람다함수가 GUI 프로그래밍에서 빛을 발한다고 하셨는데,

C++로 GUI 프로그래밍을 해본 적이 OpenGL의 도움을 받은 것 이외에는 문외한이여서요..! Java를 통해서는 많이 해봤지만, C++로도 해보고 싶어요!

C++ 자체적으로 MFC 혹은 WIN API, WinForm은 실무에서 요즘은 잘 안 쓴다고 해서 공부하기가 조금 망설여지네요. 그래서 혹시 람다함수가 쓰이는 최신 트렌드의 GUI 프레임워크를 혹시 추천해주실 수 있으신가요? 

2
전선생 프로필

(07:50) 이중포인터배열 전선생 10일 전

강의에서 row[][] 의 값을 찍는데 변수값이 나오는것이 잘 이해가 가지않습니다.

말그대로 이중포인터를 그대로 찍으면

 

주소의주소가 나와야하는것이 아닌가요?

1
백윤기 프로필

선생님 질문 있어요~ 백윤기 11일 전

안녕하세요 선생님,

입출력 강의를 학습하던 도중,

09분 41초, 14번 줄, ofstream ofs("my_first_file.data"); 

처럼 출력이나 입력에서 ios::binary 옵션을 추가해주 2진 데이터로 입출력을 하는 것이잖아요?

그런데 영상에서는 이걸 생략하시고 하셨는데도. 데이터 파일을 열었을 때 2진데이터로 출력이 되어 있더라구요!

그래서 넣고 빼고 둘다 시도해봤는데, 문자열은 그냥 문자열로 출력이되고, 문자열 포인터들은 2진데이터로 출력이 되더라구요. 메모장에 문자열을 자동으로 디코딩한 것인지, 넣고 빼고의 차이가 없는 것인지 궁금해요..!

 

2
오원택 프로필

16분 34초에 map 데이터 활용을 이렇게도 가능한가요? 오원택 13일 전

최근에 알고리즘 사이트에서 길 찾는 문제 같은경우 2차원 맵에서 지나갔는지 안지나갔는지 이걸 기록으로 남기고 싶어서 처음에는 동적 2차원 char배열로 0아니면 1로 했었는데 혹시 맵을 이용해서 키가 변수 두개 value는 1개 이렇게 해서 각 위치를 변수 두개에 대응시켜서 value를 통해 지나갔는지 여부를 만들 수 는 없나요?

강의에서는 map<>하고 안에 자료형이 두개 뿐인데 3개 혹은 그이상으로도 늘릴 수 있는지 궁금합니다.

1
오원택 프로필

템플릿에서 자료형이 클래스일때 어떤걸 기준인지 정해주는게 다음과 같나요? 오원택 15일 전

이번 강의에서 Getmax함수 중에서 비교연산자 >,< 이걸로 어떤게 큰값인지 구분하실때 cents를 쓰셨는데 cents같은경우 자료형이 m_cents 하나뿐인데 만일 사람을 클래스로 만들었을때 키,몸무게,나이 등이 있을텐데 해당 변수들을 오퍼레이터 > 부분에서 구현을 해주면 제가 원하는 자료형을 선택할 수 있나요? 예를 들어 난 키를 기준으로 대소를 비교하겠다 하면  operator >에서 키를 비교해주면 되는건가요?

 

1
용용 프로필

7.3장 8분 55초에서 넘겨받는걸 굳이 레퍼런스로 바꾸는 이유가 뭔가요?? 용용 16일 전

레퍼런스로 인수를 넘겨받으면 인수를 넘겨받은 함수에서 원본을 바꿀수있는 권한을 받을 수 있는것으로 이해하고 있습니다.

const로 원본 변경 못하게 막아놓고 인수는 referance로 바꾸는데에 어떤 의미가 있는것이죠??

1
오원택 프로필

질문드립니다. 오원택 18일 전

final같은경우 virtual일때만 쓸수 있다고 하는데

제가 지금까지 이해한 바로는 virtual을 맨 위 상속주는 클래스의 함수포인터를 선언해서 print같은 함수를 할때 대입하는 클래스의 print를 쓰고자 해서 쓰는걸로 이해를 한 상태입니다. 그런데 그 뒤에 final을 써서 오버라이드 하지 않게 하는건데 그러면 virtual을 쓰고자 한 이유가 없는거 아닌가요? 아님 제가 잘못 이해한건지.. 

2
오원택 프로필

3분 36초경 ref.print() 했을때 오원택 18일 전

저는 B라고 출력이 되는데 왜 그런지 모르겠습니다.

1
하가현 프로필

7_15강 명령줄인수 강의에서 명령줄 인수를 쓰는 이유가 무엇인가요 하가현 18일 전

안녕하세요.

강의가 내용이 점점 어려워지지만 배우고 공부할 것이 많아 기쁜마음으로 수강중입니다. 

이런 말씀을 드려 죄송하지만 이번 강의는 도저히 무슨 내용인지 이해하기가 어렵고 답답하여 질문글을 올립니다.

강의 00:35에 메인함수의 매개변수로 여러가지가 들어갈 수 있다고 하셨는데 왜 얘들(int main(int argc, char *argv[]))이 들어가는지 설명 부탁드리고,

강의 01:14 까지 코딩을 한 이유는 단지 실행파일의 저장 위치를 프린트하기 위함인가요? 

02:48 명령 프롬프트에서 my_program 100 1024 3.14를 쓰는 것과 03:17 비주얼 스튜디오에서 명령줄 인수에 100 1024 3.14를 써서 실행을 하면 그 숫자들만 프린트가 될 뿐인데 cout << 100 << endl; cout << 1024 << endl; cout << 3.14f << endl; 이것과 차이점이 무엇인가요?

 

코드 자체도 어떻게 돌아가는지 이해가 되지 않아서 통째로 첨부합니다.

 

#include <iostream>

#include <string>

 

using namespace std;

 

int main(int argc, char *argv[]) // 메인함수에 들어가는 매개변수들이 무엇을 의미하나요 파일 위치를 프린트하기위함인가요?

{

for (int count = 0; count < argc; ++count)

{

string argv_single = argv[count];

 

if (count == 1) // 왜 1일때 아래를 프린트 하게 하나요? 04:35에서 말씀해주시는데 이해가 잘 안됩니다.

{

int input_number = stoi(argv_single); // 05:05 stoi는 정수로 바꾼다고 하셨는데 무엇을 정수로 바꾸나요? s가 string이라면 어떤 문자열을 바꾸려고 한 것인가요?

cout << input_number + 1 << endl;

}

else

cout << argv_single << endl;

}

 

return 0;

}

 

너무 답답해서 해결 못하면 오늘 잠 안올 것 같아요 ㅠㅠ 

이미 두번 세번 돌려봤는데 전체적으로 이해가 되지 않아서 질문글을 올립니다.

항상 유익한 강의 감사합니다.

3
Jeong Sanghoon 프로필

delete 와 nullptr 질문입니다. Jeong Sanghoon 21일 전

교수님 안녕하세요!

좋은 강의 재미있게 듣고 있습니다.

9분 경의 null을 delete 하게 되면 문제가 발생할 수 있다고 하셨습니다. 그것이 어떠한 문제인가요?

제가 먼저 검색을 해본 결과, delete는 null에 대해서 safe 하다고 합니다. delete 안에 null을 검사하는 코드가 있어서 null을 미리 검사하지 않고 써도 무방하다는 의견을 보았습니다.

이것이 최근에 업데이트 된 최신 c++에서 생긴 것이라 영상과는 다른 것인지, 아니면 뭔가 다른 위험성이 있기 때문에 그런 것인지 궁금합니다.

 

1
오원택 프로필

11분 14초에 const의미 오원택 21일 전

const Teacher & const teacher_input에서 처음 const는 값을 바꾸지 않는다는걸로 알고 있는데 레퍼런스&뒤의 const는 무슨 의미인건가요? 포인터에 앞에 const 뒤에 const 같은 내용인가요? 값변경 불가능 그리고 주소변경 불가능? 이런 의미 인건가요?

1
주태종 프로필

연산자 오버로딩 질문입니다 주태종 21일 전

선생님 C++ 을 오랜만에 다시 보고 있는데 이해가 안 되는 부분이 있습니다.

9.1 산술연산자 오버로딩  11분에 나옵니다.

using namespace std;
class Cents {
private:
 int m_cents;
public:
 Cents(int cents = 0)
 {
  m_cents = cents;
 }
 int getCents()const
 {
  return m_cents;
 }
 int& getCents()
 {
  return m_cents;
 } 
 Cents operator+(const Cents& c2)
 {
  return Cents(this->getCents() + c2.getCents()); 
 }
};
int main()
{
 Cents cents1(6);
 Cents cents2(8);
 cout << (cents1 +cents2 +Cents(5) + Cents(10)).getCents() << endl;
 return 0;
}

 

위에 주석 달아 놓은게 질문 입니다.

1. this->getCents()는 왜 int& getCents()함수로 가나요? 

2. c2.getCents()함수는 왜 int getCents()const 함수로 가나요?

1