월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C++
visual studio for mac
선생님 안녕하세요, mac으로는 Visual studio C++를 사용할수 없나요?? 몇번이고 설치 시도했는데 어려움이 있어서 여쭤봅니다.
- 미해결홍정모의 따라하며 배우는 C++
21분 30초 쯤에 연산자끼리의 충돌 문제 질문드립니다.
먼저, 항상 유익한 강의 감사드립니다. cout << (x % 2 == 0) ? "even" : "odd" <<endl; '어느 연산자끼리 충돌이 일어나서 괄호가 없으면 문제가 생기는 걸까?' 를 생각해보라고 하셨는데, 위 문장에서 연산자는 %, ==, ? :, << 4개이며, precedence 순으로 나타내면, %, <<, ==, ? : 의 순으로 됩니다. x = 5 이므로 x % 2를 먼저 계산하여 1이 나오지만, 그 이후 bitwise operator << 전에 "odd" 가 있으므로 에러가 일어나는 것 같습니다. 하지만, 다시 코드를 cout << (x % 2 == 0) ? "even" : "odd"; 로 바꿔 컴파일 하면 0이 출력됩니다. 제 생각엔 x % 2 이후 equal to 연산자인 == 이후에 0이 있으므로 코드가 cout << 0 ? 1 : 0; 이 됩니다. 그리고 cout << 뒤의 0이 출력되는 것 같습니다. 제 생각이 잘못되었다면 어떤 부분인지 지적 부탁드립니다.
- 미해결홍정모의 따라하며 배우는 C++
비트 플래그 관련 질문 올립니다.
<35:05> unsigned char green = pixel_color & green_ mask ; 에서 R value 를 계산해 보면 00000000000000001010010100000000 이므로 앞의 0을 무시한다 해도 16자리이므로 최소 2바이트가 필요한데 어떻게 저 값이 에러가 나지 않고 char 타입에 저장 될 수 있었는지 궁금합니다. 앞 강의 내용을 들어보면 비슷한 상황에서 "버퍼에 저장되어있어서 "라는 언급이 나오는데 이게 정확히 무슨 말씀이신지 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C++
if문을 이용한 프로그램 질문드립니다.
먼저, 질문 하기에 앞서 이렇게 질 좋은 강의에 감사의 말씀드립니다. 제가 의도하는 프로그램은 a~z, A~Z 의 알파벳을 입력하면 “alphabet”이 출력되고, 정수를 입력하면 “number”가 출력됩니다. 이를 위해서 input 되는 값을 int형으로 casting 하여 ASCII TABLE을 통해 if()의 범위를 64<num<91 && 96<num<123 로 설정하여 “alphabet”이 출력되도록 합니다. ------------------------------------------------------------------------------------------------ #include <iostream> using namespace std; int main() { cout << "Enter a number or an alphabet character : "; char input; cin >> input; int num = int(input); cout << "The ASCII number of your input : " << num << endl; if(64<num<91 && 96<num<123) { cout << "alphabet" << endl; } else { cout << "number" << endl; } return 0; } ------------------------------------------------------------------------------------------------ 하지만, 5를 input 하여 ASCII number가 53되어서 범위에 if()의 범위에 포함이 되지 않았어도 “alphabet”으로 출력되는 오류가 생겼습니다. 그래서 이번엔 else if()를 사용하여 범위를 나눠봤습니다. ------------------------------------------------------------------------------------------------ #include <iostream> using namespace std; int main() { cout << "Enter a number or an alphabet character : "; char input; cin >> input; int num = int(input); cout << "The ASCII number of your input : " << num << endl; if(num>96 && num<123) { cout << "alphabet" << endl; } else if(num>64 && num<91) { cout << "alphabet" << endl; } else { cout << "number" << endl; } return 0; } ------------------------------------------------------------------------------------------------ else if()를 사용하여 수정해보니 5를 넣으면 “number”가 출력되도록 바꿨습니다. 정상적으로 의도한 프로그램이 작동합니다. 하지만, 제 질문은 1. 첫 번째 프로그램에서 if(64<num<91 && 96<num<123) 이 부분이 제대로 작동하지 않은 것 같은데, 이유가 궁금합니다. 2. else if 문을 사용한 것이 최선인지 궁금합니다. 다른 방법이 있다면 가르쳐 주시길 바랍니다.
- 미해결홍정모의 따라하며 배우는 C++
강의 마지막 문제 질문드립니다.
항상 유익한 강의 감사드립니다. 제가 생각한 l-value 에 대한 정의는 '메모리 공간에 대한 주소를 갖고 있는 것' 이고, r-vlaue 는 '임시로 복사가 되는 것' 이라고 생각합니다. (x + y)가 l-value 냐 r-vlaue 냐에 대해 제가 직접 컴파일러를 실행시켜 본 결과, cout << &(x + y) << endl; 오류가 발생했습니다. error: lvalue required as unary ‘&’ operand 즉, 주소값을 갖고 있지 않다고 생각합니다. 그래서, (x + y)는 r-value 라고 생각합니다. 새로이 변수 r을 대입해봤을 떄, int r = x + y; cout << &r << endl; r의 주소값이 나온 것으로 보아 r이 l-value가 되므로, x + y 는 r- value 가 된다고 생각합니다. 제가 생각한 부분이 미흡하다면 지적 부탁드립니다.
- 미해결홍정모의 따라하며 배우는 C++
연습문제 풀어보았습니다. 한번 봐주시겠습니까?
교수님, 항상 강의 잘 보고 있습니다. 감사합니다. #include <iostream> using namespace std; int addTwoNum(int a, int b, int c) { return a + b + c; } int main() { cout << "숫자를 입력하시오." << endl; int a, b, c; cin >> a; cout << "첫번째 숫자 " << a << endl; cin >> b; cout << "두번째 숫자 " << b << endl; cin >> c; cout << "세번쨰 숫자 " << c << endl; cout << "합은 " << addTwoNum(a, b, c) << endl; return 0; }
- 미해결홍정모의 따라하며 배우는 C++
extern 선언
header 파일과 cpp파일을 따로 만들어 상수를 선언하는 부분에서, header 파일에 extern 선언을 하는 것은 이해가 되지만, cpp파일에서까지 extern을 붙여줘야하는 이유를 모르겠습니다. extern 은 외부 파일 어딘가에 해당 변수(상수)가 있다 라는 의미를 내포하고 있는것으로 아는데, cpp파일에서도 선언을 해 줘야하는지 궁금합니다. +실제로 cpp파일의 상수 선언에서 extern을 빼니, 에러가 발생하는것을 확인했습니다. 제가 extern 키워드를 잘못 이해하고 있는건가요?
- 미해결홍정모의 따라하며 배우는 C++
코드 최적화 관점에서 리터럴에 대해 질문이 있습니다.
강의 시간은 따로 없고 강의를 쭉 듣다가 궁금해져서 질문 주제와 관련된 것이 이 강의라서 여기서 질문 드리는데요 특정 계산을 반복하는 코드를 짰는데요 이것이 계산 속도가 중요한 부분이 있습니다. 그래서 최적화를 할려고 노력중인데 변수에 리터럴을 저장 해놓고 변수를 쓰는게 계산이 빠른지 아니면 그냥 변수 저장없이 리터럴 값을 바로 쓰는게 계산이 빠른지 궁금합니다. 변수가 반복이 된다면 변수를 쓰는게 좋다고 하시겠지만 2,3번 쓰는것도 그냥 변수로 쓸지 아니면 리터럴 상수 값으로 쓰는게 나을지 궁금합니다. 그만큼 속도가 중요해서 고민이 하고 있습니다. 값은 소수랑 정수가 있습니다.
- 미해결홍정모의 따라하며 배우는 C++
실행이 됬는데 잘됬건지 모르겠네요
너무 짧게 짜진것 같은데 잘 짠건지 모르겠네요ㅠ 일단 실행은 잘됩니다.
- 미해결홍정모의 따라하며 배우는 C++
동적할당의 메모리에 관해 질문이 있습니다
안녕하세요. 동적할당을 배우기 시작한 프로그래밍 입문자입니다. 동적할당에 관해 궁금한 점이 있어서 질문드리게 됐습니다. int main() { { int a = 5; } a = 7; (오류) return 0; } 위의 코드에서 a는 스택메모리에 저장되어 있습니다. 스택은 괄호를 빠져나가는 순간 메모리가 소멸하기에 뒤에 a 값을 할당하려는 것(a=7)은 오류가 되잖아요. 근데 동적할당의 경우 스택이 아니라 힙에 저장되며, 무엇보다 괄호를 빠져나가는 순간 메모리가 소멸하는 것이 아닌 delete를 해줘야 메모리가 다시 os에 반환되는 거잖아요. 반대로 delete하기전엔 메모리가 소멸이 안 된다는 거잖아요 따라서 위의 상황처럼 스택의 상황과 전혀 다르기에 비슷한 상황을 만들어봤습니다. int main() { { int* b = new int {5}; } *b = 7; (오류) return 0; } b는 힙에 저장되어 있고 delete를 하지 않는 한 메모리가 사라지지 않으니 return 위에 있는 b에 값을 할당하는 내용이 오류가 아닐 줄 알았는데 오류라고 뜨네요. 왜 오류가 뜨는지 알고 싶습니다!
- 미해결홍정모의 따라하며 배우는 C++
지역변수의 중단점이 안보일경우
배열과 반복문 강의 듣는겸 따로 봐왔던 코드를 따라 해보는겸 코드를 짜고 잇는데요 제 의도 대로 되지 않아서 중단점을 통해서 배열이 어떻게 채워지는지 보고싶어 중단점을 정하고 디버깅을 하는데 지역 변수 인 부분인 배열이 중단점에서 안보이더라구요 ㅠ 구글링해서 optimization을 Disabled 해도 안되더라구요 배열을 중단점에서 어떻게 확인 할수 있을까요?? 버젼은 Visual Studio Community 2019 - Version 16.11.2 입니다!
- 미해결홍정모의 따라하며 배우는 C++
moveTo함수 질문
안녕하세요. 비전공자라 매우 기초적인 질문일 수 있는데moveTo함수의 파라미터를 인티저 변수가 아닌 참조자 변수로 받는 것은 메모리를 줄이기 위함인가요?
- 미해결홍정모의 따라하며 배우는 C++
재밌네요
(사진)
- 미해결홍정모의 따라하며 배우는 C++
error C2672: 'begin': 일치하는 오버로드된 함수가 없습니다?
동작할 것 같은데 ... 위의 에러가 나서요. 설명 좀 해주세요. #include <iostream> #define SIZE 5 using namespace std; int add(int arr[], int size) { int sum = 0; for (auto element : arr) { sum += element; } return sum; } int main() { int a[] = { 1,2,3,4,5 }; int c = add(a, SIZE); }
- 미해결홍정모의 따라하며 배우는 C++
13분10초쯤에 질문이있습니다
try { if(x<0.0)throw string("Negative input); cout<<sqrt(x)<<endl; } catch(string error_message) { court<<error_message<<endl; } 이때 throw 안에있는 string("Neagtive input")은 익명객체인가요 아니면 string 으로 타입캐스팅을 해주었다는 뜻인가요?
- 미해결홍정모의 따라하며 배우는 C++
doSomething 함수의 파라미터
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 수업에서 한 doSomething함수를 적다가 궁금해서 cout<<array도 해 보았는데요, cout<<&array와 값이 다르게 나오는 이유가 뭔지 궁금합니다
- 미해결홍정모의 따라하며 배우는 C++
0 아니면 다 true라고 하셨습니다.
왜 알파벳 하나 입력 했을때 false가 나오나요? d나 다른 알파벳도 넣으면 false가 나옵니다. 강의 시간 - 18:45 비쥬얼 스튜디오 버젼 2019 16.7.5
- 미해결홍정모의 따라하며 배우는 C++
구초체 초기화에 있어서 비주얼 스튜디오에서는 되는데, 리눅스에서는 에러가 나는 이유를 알고 싶습니다.
#include <iostream> using namespace std; struct { int number; char name[10]; char phone_number[15]; int age; }typedef Employee; int main() { Employee employee[10]; employee[0] = { 1, "test1","010-5555-6666",30 }; int i; for (i = 0; i < 10; i++) { if (employee[i].age >= 20 && employee[i].age <= 30) { std::cout << employee[i].name << std::endl; } } return 0; } 컴파일 g++ a.cpp -std=c++11 에러 a.cpp: In function ‘int main()’: a.cpp:13:14: error: no match for ‘operator=’ (operand types are ‘Employee’ and ‘<brace-enclosed initializer list>’) employee[0] = { 1, "test1","010-2222-3333",25 };
- 미해결홍정모의 따라하며 배우는 C++
파생클래스
안녕하세요.훌륭한 강의 잘듣고 있습니다. 하나 여쭤볼게 있는데 파생클래스에 대한 부분을 먼저 듣고싶은데 강의내용에 포함되지 않은건가요?? 찾아봤는데 어딨는지 모르겠습니다.....
- 미해결홍정모의 따라하며 배우는 C++
11분 경 *check_fcn 에 대한 궁금증.
bool (*check_fcn)(const in&) 이게 기능을 넣기 위해선 함수가 필요하고, 함수를 파라미터로 사용하기 위해서 펑션 포인터 형태로 (*check_fcn)을 사용. 그리고 리턴 타입이 bool인 isOdd와 isEven 함수를 사용하기 위해 두 함수의 파라미터인 const int&를 사용했음. 제가 이렇게 이해했는데 이게 맞는지 모르겠습니다. 그리고 만약 isOdd와 isEven의 파라미터가 int라면 (*check_fcn)(int)로 사용하는게 맞는건가요?