홍정모의 따라하며 배우는 C++
홍정모의 따라하며 배우는 C++
수강정보
(128개의 수강평)
2743명의 수강생
스킬태그 #C++
5개월 할부시
월 15,400원77,000원
지식공유자 : PP TREE
201회 수업 · 총 48시간 27분 수업
기간 : 평생 무제한 시청
수료증 : 발급 강의
수강 난이도 : 초급
ksi0911 프로필

Fraction doSomething() 과 Fraction & doSomething 차이 ksi0911 6일 전
안녕하세요? 교수님 디버깅 하는중에 doSomething() 함수 호출 과정에서 의문이 생겨서 질문 드립니다. 1.  Fraction  doSomething()  이 함수에서 호출 했을 때, copy constructor을 호출 하는 시점이 return temp 에서 발생했습니다.  2.  Fraction &  doSomething() 이 (& 반환)함수에서   copy constructor 호출이  Fraction result = doSomething()에서 반환 했습니다.   두 함수다 두 번째 사진 처럼 copy constructor가 발생 되어야 한다고 생각했습니다. 첫 번째 사진에서 return temp시점에서 copy constructor을 호출하는 이유가 이해되지 않아서 질문드립니다.  

2
배규혁 프로필

[12:34] 질문 있습니다. 배규혁 6일 전
strcat_s를 연습하던 도중에 C6386 error 가 발생해서 질문드립니다. 구글링해도 무슨 말인지 이해가 안갑니다...ㅠ strcat_s에서 size를 11로 수정했을 때는 에러가 발생하지 않지만 값이 출력되지 않습니다... 또 Release일 때랑 Debug일 때랑 결과가 다른데 그 이유도 같이 궁금합니다. <code> #include <iostream> #include <cstring> using namespace std; int main() { char source[] = "Copy this!"; char dest[] = "do it again!"; strcat_s(source, 50, dest); cout << source << endl; cout << dest << endl; return 0; } 이 때 strcat_s line에 밑줄 쳐지면서 C6386 error 라고 뜹니다.  <Debug일 때 결과> Copy this!do it again! do it again! C:\Users\wawoo\source\repos\Inflearn 강의용 6\Debug\Chapter6_6.exe (process 12792) exited with code -1073740791. Press any key to close this window . . . runtime error 뜨면서 값은 제대로 출력이 됩니다. <Release일 때의 결과> Copy this!do it again! it again! C:\Users\wawoo\source\repos\Inflearn 강의용 6\Release\Chapter6_6.exe (process 3516) exited with code 0. Press any key to close this window . . . 앞에 do 가 생략돼서 나옵니다... 감사합니다!

1
배규혁 프로필

[02:59] 질문 있습니다. 배규혁 6일 전
교수님께서 문자열 "string"으로 sizeof를 하셔서 7의 값이 나왔는데 그 전에 "string\0"을 했을 때는 sizeof(myString) / sizeof(myString[0])의 값이 8로 나옵니다... "string\0"으로 값을 입력하면 sizeof는 \0를 같이 포함시키고 "string"으로 하면 포함을 시키지 않는건가요...? null character가 적용되는 기준이 궁금합니다..! 그리고 int array와 char array를 출력할 때 그냥 cout << () << endl; 을 써서 출력하면 int array는 주소를 출력하고 char array는 입력한 배열을 출력하는 지 궁금합니다. 감사합니다.

1
배규혁 프로필

16:05 질문 있습니다. 배규혁 9일 전
현재 visual studio 최신판으로 공부를 하고 있습니다. 교수님이랑 똑같이 프로그래밍 했을 때 case1의 지역변수 y 가 초기화되지 않았다고 error 가 발생합니다. 혹시 이게 업데이트 되면서 바뀐건지 궁금합니다. case 0 내에서 지역변수 y가 선언되고 초기화했지만 case0을 거치지 않아서 그런 것 같은데 맞는 건지 질문 드립니다.  감사합니다! 

3
ififi ifif 프로필

[10:30] ififi ifif 10일 전
#include<iostream> #include<string> int main() { using namespace std; cout << "Your name? : "; string name; cin >> name; cout << "Your age? : "; string age; cin >> age; cout << name << " " << age << endl; return 0; } 1) jack jack을 입력받았을 때 왜 마지막줄의 cout<<name<<"  "<< age<<endl;  부분은 실행(출력)이 되지 않나요?? 2)   입력으로 j1 j2 j3를 입력했을 때 한줄씩 디버깅하면 변수값이  age= j1, name=j2가 나옵니다.  실행파일에서는 age가 j1, j2로 나오는 이유를 모르겠습니다. 

1
rkswlska6216 프로필

m_value 출력 질문 rkswlska6216 11일 전
안녕하세요 강의 15:14 에서 보여주신 코드를 그대로 쳐보고 교수님 께서 some.getvalue()=10; 이 코드가 가능하다고 말씀 하셔서 m_value 의 값이 정말로 바뀌는지 궁금해 cout<<something.m_value<<endl;코드를 추가하고출력을 해보았는데  오류는 생기지 않지만 공백으로 출력이되고 10이 나오지 않았습니다 저부분을  some.getvalue()="10";으로 수정하니 10이 출력됬습니다. string 에 값을 대입하기위해서는 ""을 써야한다고 알고있는데 그럼 some.getvalue()=10; 은 잘못된 구문 아닌가요? 만약 잘못된 구문이라면 왜 오류가 생기지 않고 공백으로 출력이 되는지 알고싶습니다.

2
gkseofla7 프로필

클래스 속에 맴버함수에대해 질문 있습니다. gkseofla7 14일 전
2:25에 15번 줄에서 add함수를 정의할때 parameter로 Cents & c_out을 사용하는데 , 이 클래스 이니셜라이즈 맴버 함수를 부르려면 맴버함수에 12번 줄처럼 무조건 &붙어있어야되나요?

1
허재원 프로필

30:26 복습문제 질문드립니다. 허재원 18일 전
안녕하세요 선생님 강의 매번 잘 듣고 있습니다. 3.141592를 '지수 표기법'을 이용해 표현하는 걸 실습하고 있었습니다. cout를 사용해 자동형변환으로 출력을 했는데요.  아래 코드와 같이 C를 이용한 printf 결과값은 '3.141592'로 정확히 나왔고, C++에서 cout 결과값은 '3.14159'로 나왔는데요. 뭐가 잘못된지 이해가 안갑니다 ㅠㅠ cout 자동 형변환으로 double로 계산된 것도 확인했구요. 컴퓨터 구조적인 문제인지 아니면 printf / cout의 차이인지 궁금합니다. 아니면 다른 차이가 있는 건가요? 혼자 끙끙 앓다가 질문을 남기네요. 바쁘신데 죄송합니다.

3
auspicious2 프로필

global variable 과 static local variable auspicious2 24일 전
교수님의 두 변수에 대한 설명 잘 들었습니다. 약간 애매한 부분이 있어서 질문 드리는데요, global variable과 static local variable 은 모두 cpp 파일 전체에서 고정된 메모리 공간을 차지하고 있다는 사실은 동일하지만 stati local variable은 {} 안에서만 사용할 수 있고, global variable은 파일 전체에서 사용할 수 있다는 점이 다른 건가요?

1
meiroo2 프로필

참조로 반환하는 함수 질문 meiroo2 26일 전
참조로 반환하는 함수의 예시와 같이 int& getValue의 리턴 값의 경우는 value의 레퍼런스 타입을 리턴한다고 알고 있습니다. 그런데 메인에서 이를 레퍼런스로 받는다고 했을 때 ( int &x = getValue(2); ) getValue 안의 value의 레퍼런스 타입인 ( int &value = x * 2; ) 에서의 value를 그대로 넘겨주는 것 처럼 보입니다. 상식적으로 이해가 안 가기에 제가 생각하는 바는 내부적으로 참조형을 반환할 떄에는 레퍼런스 형을 만들어서 ( int &ref = value; ) -> ( int &x = ref; ) 이처럼 그 다음에 ref를 반환한다고 생각하는 것이 맞나요? 제가 맞나, 틀리나와 별개로 참조로 반환 시 함수에서 일어나는 일이 궁금합니다.

4
choiiohc1 프로필

char 자료형의 주소 출력 choiiohc1 27일 전
강의 7:00분 즈음에 char c = 'Q'; cout<<&c<<endl;  를 하면 문자열로 인식해서 null character를 만날때까지 출력이 된다고 하셨는데 그럼 char 변수의 주소를 출력하려면 어떻게 해야되나요? 답변 미리 감사합니다!

1
velnuty 프로필

14.3 예외처리 클래스 상속과 객체 잘림에 대하여 질문 있습니다. velnuty 28일 전
클래스는 Exception 클래스와 Exception 클래스를 상속받은 ArrayException 클래스를 선언 했습니다. 보시는 바와 같이 메인 함수에서 doSomething 함수를 호출합니다. 그리고 doSomething 함수 내부에서 my_array[100]에서 오버로딩한 [ ] 연산자 함수를 호출합니다. 그러면 오버로딩한 [ ] 연산자 함수에서 예외가 발생하여 throw에 의해서 ArrayException타입 객체를 기본 생성자를 호출하여 생성된 객체를 doSomething 함수의 내부에 있는 catch에 넘겨줍니다. 그렇게 되면 catch 옆에 (Exception& e) 처럼 값에 의한 전달이 아닌 참조에 의한 전달로 객체 자체를 넘겨줍니다. 그러면 Exception 클래스를 상속받은 ArrayException객체 자체를 e로 넘겨줍니다.  그리고나서 e.report()를 통해서 report 함수에 구현된 내용이 실행됩니다.  여기서 제가 궁금한것이 있습니다. 객체 잘림현상은 참조에 의한 전달이 아닌 값에 의한 전달에서 발생한다고 배웠는데 어째서인지 값에 의한 전달이 아닌 참조에 의한 전달로 객체 자체를 전달 했음에도 코드 실행 결과는 ArrayException클래스에서 구현한 report 함수의 내용이 아닌 Exception클래스에서 구현한 report 함수의 내용이 실행됩니다.  제가 알고있는 객체 잘림 현상에 대한 지식이 잘못된 것인지 아니면 예외 처리 클래스의 상속에 대해한 객체 잘림 현상이 특별한 경우인지 아니면 단순히 throw e와 throw의 차이인지 궁금합니다. 그다음에 메인 함수에서도 (Exception& e)에 값에의한 전달이 아닌 참조에 의한 전달로 객체 잘림이 발생한 ArrayException클래스 타입의 객체가 전달됩니다. 그리고 Exception 클래스에서 구현한 report 함수가 실행됩니다.  여기서는  doSomething 함수의 내부에서 객체 잘림 현상이 발생해서 Exception 클래스에서 구현한 report 함수가 실행된거라고는 이해가 됩니다.  그러면 왜 doSomething 함수 내부에서 객체 잘림이 발생한 것인지 궁금해서 질문 드립니다. 긴글 읽어주셔서 감사합니다.

2
움직이는YM 프로필

20.3 비쥬얼 스튜디오에서 깃헙 사용하기 질문있습니다. 움직이는YM 1달 전
교수님 비쥬얼 스튜디오에서 깃허브로 연결을 통해 비쥬얼 스튜디오에서 코드 작성 -> 깃허브에 공유 하는 방법을 알았습니다 반대로 깃허브 사이트에서 파일을 수정 -> 비쥬얼 스튜디오로 불러오기를 하고 싶습니다 구글링을 해봐도 교수님께서 제시해 주셨던 비쥬얼 스튜디오에서 코드 작성 -> 깃허브에 공유만 뜨거나 깃허브에서 파일을 내려받을 때는 CMD를 이용하는 방법 밖에 없었습니다 혹시 깃허브 사이트에서 파일을 수정 -> 비쥬얼 스튜디오로 불러오는 방법을 알 수 있을까요? 구글에 어떻게 검색하면 나올까요? 

2
anfdmlrltk11 프로필

3:00 질문 있습니다 anfdmlrltk11 1달 전
영상에서 getCents를 사용해도 되고 std::vector vec(20); for (int i{ 0 }; i < 20; ++i) vec[i] = i; 이렇게 짜도 작동이 되긴 합니다. 하지만 교수님이 굳이 getCents()를 사용한 이유는 만약 Cents class안에 멤버 변수가 여러개 있다면  Cents 안에 m_cents의 직접접근이 안되기 때문에 getCents()로 호출한 것인가요?

1
움직이는YM 프로필

멀티쓰레딩 예제 실행시간 수정 질문 움직이는YM 1달 전
random_device seed; mt19937 engine(seed()); uniform_int_distribution <> uniformDist(1, 10); const auto sta2 = chrono::steady_clock::now(); //시간 재는중 for (long long i = 0; i < n_data; i++) { v0.push_back(uniformDist(engine)); v1.push_back(uniformDist(engine)); } const chrono::duration<double> dur2 = chrono::steady_clock::now() - sta2; //시간 재는 중 cout << dur2.count() << endl; 말씀하신 부분을 다음과 같이 해서 시간을 측정해보니 143.15초가 나왔습니다. for문을 이용해 vector에 값을 넣는 것에만 2~3분이 걸린 것입니다. 구글링 해본 결과 시간 복잡도 계산에 for문 기준으로 1억번 계산하는데 1초라는 내용을 알 수 있었습니다 for문안에 2억번 계산이 이루어지니까 산술적으로 2초가 걸립니다. 하지만 단순 값을 넣는 것이 아닌 완전 랜덤 숫자를 넣는 것이니까 2초보다는 조금 더 걸리겠지 라는 생각을 해봐도 시간이 지나치게 소요된다는 생각이 들었습니다. 교수님이 예제를 보여주실 때는 거의 순식간에 결과를 알 수 있었는데 이러한 차이가 어디서 오는건지 궁금합니다.  

3
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스