월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C++
실무에서 auto 키워드를 사용하나요?
안녕하세요 교수님 실무에서도 auto 키워드를 쓰는지 궁금합니다. 개인적인 생각으론 모호함으로 인해 데이터형을 명시해주는게 좋지 않나 생각이 들어 여쭤보네요~ 감사합니다.
- 미해결홍정모의 따라하며 배우는 C++
visual studio 2022 에서 변수선언시 *, & 의 위치 문의
int *v; 로 작성을하게되면 ; 를 누르는 순간 int* v 로 *이 왼쪽 자료 type쪽에 자동으로 붙게됩니다. &도 마찬가지구요. visual studio가 이런 방식의 형태를 권장하는 것 같은데 교수님께서는 항상 *, & 를 오른쪽에 붙이시는데 옳다 그르다는 없지만 이부분에 대한 교수님 생각을 알고싶습니다. 이전 옛날 강의 어디선가 *,&가 뒤에붙이는게 더 이론상 맞다라고 얼핏 들은기억이 나는데 도저히 찾을수가 없네요 ㅠ
- 미해결홍정모의 따라하며 배우는 C++
vscode에서 g++ 컴파일러로 빌드가 안됩니다(header/cpp 분리)
해당 강좌에서 add.h에는 데코레이션만하구 add.cpp에서 함수를 정의하셨는데, 저는 vscode에서 g++로 빌드를 해서 그런지... Undefined symbols for architecture arm64: "add(int, int)", referenced from: _main in 1_11_header-67f776.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 이런 오류가 뜹니다. 헤더 안에 함수 내용까지 정의해서 빌드하면 정상적으로 빌드되고 실행도 되는데요... 혹시 안되는 이유라도 알 수 있을까해서 질문 남깁니다~! 답변 미리 감사드립니다~
- 미해결홍정모의 따라하며 배우는 C++
소멸자 호출 질문
제가 따라 하면서 좀 다르게 코드를 만들어서 돌려봤는데 소멸자가 왜 한번만 호출이 되는지가 이해가 안되서요 제가 생각에는 re의 소멸자랑 re2의 소멸자 그리고 re3에서 만들어진 복사생성자에서 호출하는 Resource(source.length); 여기서만든 생성자랑 re3에서 만들어진 거랑해서 총 4의 소멸자가 호출이 되어야 한다고 생각하는데 1개만 호출이 되서요 왜그런건가요?
- 미해결홍정모의 따라하며 배우는 C++
소멸자 호출 질문
어떻게 AutoPtr에서 소멸자가 호출이 되는지 이해가 안되서요 중간에 throw가 발생하거나 해서 delete로 따로 지워주지 않으면 객체가 그대로 남아있어서 소멸자가 호출이 안되지않나요? 여기서도 돌려보면 따로 소멸자가 호출이 안되서 제가 delete으로 소멸자 안에서 arr을 삭제하려 했는데 안되는 거처럼요 이 Resource랑 AutoPtr에는 뭐가 달라서 AutoPtr만 소멸자가 호출이 되는건가요? AutoPtr에서는 어떻게 소멸자가 호출이 되는지가 궁금하네요 그나마 제가 생각했을 때는 AutoPtr로 만든 res는 객체이고 Resource는 포인터라서 소멸자가 호출이 안되는건데 애매하게 알랑말랑하네요 ㅠ
- 미해결홍정모의 따라하며 배우는 C++
-
-
- 미해결홍정모의 따라하며 배우는 C++
3.6 논리 연산자 logical operators 19분
안녕하세요, 3.6 논리 연산자 logical operators 19분에서 // short circuit evaluation int a = 1; int b = 2; if (a == 1 && b++ == 2) // &&는 왼쪽이 false 면 오른쪽은 계산을 아예 안한다. { cout << a << " " << b << endl; } cout << b << endl; return 0; if (a == 1 && b++ == 2)에서 b=2이고 if문에 들어갈때 b++이니까 b->3이 되고 이때 b(3) == 2인지 비교해야 하는거 아닌가요? 연산자 우선순위도 ++가 먼저고 그다음 ==이던데 이해가 잘 되지 않습니다 ㅜㅜ --------------------- 제가 생각하는게 맞는지 확인 부탁드립니다. b++ 는 ++b와 다르게 원래 b 값을 먼저 출력하고 그 후에 ++를 해준다. 따라서 b == 2를 먼저 처리하고 b++를 진행한다. 맞을까요?
- 미해결홍정모의 따라하며 배우는 C++
[9.38] Student 클래스 value의 벡터 질문
1.Student 값의 벡터니까 registerStudent를 할 때 student_input을 가지고 와서 push_back을 할 때 복사해서 넣게 된다는데 왜 복사해서 넣는건가요? &로 student_input을 하니까 서로 같은 메모리를 참조하게 해서 student[0]에 들어가져야 되는게 아닌가해서요 2. vector<Student*> students에서 Studnet*가 가리키고 있는 원래 주소의 것은 남아있다는데 그 부분이 무슨 이야기인지 잘 이해가 안 돼요 조금 더 자세히 설명해 주실 수 있으신가요?
- 미해결홍정모의 따라하며 배우는 C++
초기화 관련해 질문 드립니다
변수를 초기화 한 후에 unsigned int의 사이즈를 대입하면 정상적으로 컴파일 되지만 초기화 할때부터 대입하면 왜 경고가 생기는지 궁금합니다
- 미해결홍정모의 따라하며 배우는 C++
16분 30초 에서요
Something::_init Something::s_initializer; 이부분이요 이너 클래스의 인스턴스를 정의 하는 부분인데 저 코드를 주석 처리하고 컴파일 하면 링킹 에러가 안나는데, 그 이유가 무엇인가요?? static int s_value 는 외부에다가 정의를 해주어야지 링킹 에러가 안나는데 static _init s_initializer; 는 외부에 정의를 하지 않아도 링킹 에러가 나지 않는 이유를 모르겠습니다.
- 해결됨홍정모의 따라하며 배우는 C++
기본 자료형
4.10 구조체 강의에서 컴파일러에 의해 short 타입 id 가 + 2byte 되었는데, struct Employee { int id; int age; double wage; }; struct Employee { short id; int age; double wage; }; 이 두가지 코드의 sizeof 크기는 모두 같은데 차이가 있나요?
- 미해결홍정모의 따라하며 배우는 C++
헤더 파일 충돌문제
test.cpp파일과 mainChapter1_24.cpp파일에 각각 header.h를 include 하니까 문제가 발생하네요 하나씩만 include 하면 문제가 안생기는데 ㅠㅠ 헤더 방지에 의해서 중복해서 하더라도 에러가 발생하지 않아야 되는거 같은데 왜 이런 문제가 발생할까요
- 미해결홍정모의 따라하며 배우는 C++
[05:00] *value 값이 정상 출력될 수 있는 이유 질문드립니다.
#include <iostream> using namespace std; int* getValue(int x) { int value = x * 2; return &value; } int main() { int *value = getValue(3); cout << *value << endl; return 0; } 위의 코드에서 value 변수는 두 종류가 있었습니다. int* getValue() 함수 안에 있는 value와 int main() 함수 안에 있는 value 입니다. 강의에서는 int* getValue() 함수 안에 있는 value 변수는 int* getValue() 함수 밖으로 나오면 지워지기 때문에 위의 예시처럼 코드를 짜면 위험하다고 하셨는데요 그 이유는 getValue() 함수 안의 value 값은 지워지고 value의 주소값만 int main() 함수 안에 있는 int* value에 복사가 되기 때문이었습니다. 그렇다면 int* getValue() 함수 안의 value 변수값이 지워진 상태에서 int main() 함수의 cout << *value << endl; 이 어떻게 정상적으로 6이라는 숫자가 출력될수 있었던 건가요? int* getValue()는 value의 주소값만 리턴해서 int main()함수에 전달하고 value의 값은 지워진것 아니었나요?
- 미해결홍정모의 따라하며 배우는 C++
[2:45] &c 출력값이 이상하게 나오는 이유 질문드립니다.
int main() { char c = 'a'; void *ptr = nullptr; ptr = &c; cout << &c << " " << ptr << endl; return 0; } 앞에서 설명하셨다고 하면서 넘어가셨지만 한 번 더 &c의 출력값이 이상하게 나오는 이유를 알려주실수 있을까요?
- 미해결홍정모의 따라하며 배우는 C++
이진수를 십진수로 변환방법
선생님 안녕하세요, 2진수 1101은 10진수로 변환하면 값이 뭐가 될까요? -13이 되는지 -3이 되는지 궁금합니다. 감사합니다.
- 미해결홍정모의 따라하며 배우는 C++
네임스페이스와 클래스 차이
추후에 배울 클래스와의 차이점이 궁금하네요. 인터넷에 쳐보면 클래스와 네임스페이스와 차이점이 있긴 한데, 쉽사리 이해가 되지 않습니다. 네임스페이스를 클래스처럼 사용할수도 있는 것 같아서요. 서로 다른 큰 차이점이 무엇인지 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C++
[42:55 ~ 46:15] Constants::pi 주소값이 다른 이유 질문드립니다.
저 구간에서 강의내용은 MyConstants.h 에 pi를 초기화 했을 때 주소값을 출력했을 때는 In main.cpp pi주소값과 In test.cpp pi 주소값이 다르게 나왔는데 MyConstants.h에서는 pi 선언만 해주고 별도의 cpp 파일(MyConstants.cpp) 에서는 초기화를 해준 다음 In main.cpp pi 주소값과 In test.cpp pi 주소값을 출력했을 대는 주소값이 같게 나온다는 내용이었습니다. 결과는 보여주셨는데 왜 첫번째 예시에선 주소값이 다르게 나오고 두번째 예시에서는 주소값이 같게 나오는지 그 이유는 알려주시지 않은것 같아서 질문드립니다. 앞 강의에서 얘기를 하셨다고 했지만 한 번 더 설명 부탁드립니다.
- 미해결홍정모의 따라하며 배우는 C++
연습문제 질문드립니다.
https://www.learncpp.com/cpp-tutorial/chapter-8-summary-and-quiz/ 여기서 3번째 문제 #include <iostream> void print(long x) { std::cout << "long " << x << '\n'; } void print(double x) { std::cout << "double " << x << '\n'; } int main() { print(5); return 0; } 오류가 나는 까닭이 int에서 long이나 double로의 변환이 numeric conversion이라는데, int to double은 type이 바꿔서 이해가 갑니다. 하지만, int to long 은 같은 정수형에서 자료형의 크기가 작은 것에서 큰 것으로 변환되는 numeric conversion인 것 같은데, 해설에서는 numeric conversion이라는 이유가 궁급합니다.
- 미해결홍정모의 따라하며 배우는 C++
using namespace MySpace1; 위치 관련 질문 드립니다.
안녕하세요. 프로그래밍이 처음이라 잘 따라해 보고 있는데요.. 1. using namespace MySpace1; 을 3라인에 입력했을 때 error가 나는데 std와 무슨 차이 인가요??? 1.14 전처리기와의 첫 만남(12:23)에서는 std를 함수 안으로 넣기도 해서요... 2. main() 마지막을 return 0; 으로 끝나는 이유가 있나요?
- 미해결홍정모의 따라하며 배우는 C++
강의 마지막 문제입니다.
문제 1, 2, 3 은 교수님이 풀어주신 예제의 변형 문제입니다. 교수님의 예제 출력값 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 ----------------------------------------------------------------------------------------------------------------------------- 1. 원하는 출력값 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1 #include <iostream> using namespace std; int main() { int outer_count = 5; while(outer_count >= 0) { int inner_count = 1; while(outer_count >= inner_count) { cout << inner_count++ << " "; } cout << endl; --outer_count; } return 0; } ----------------------------------------------------------------------------------------------------------------------------- 2. 원하는 출력값 5 4 3 2 1 5 4 3 2 5 4 3 5 4 5 #include <iostream> using namespace std; int main() { int outer = 1; while(outer <= 5) { int inner = 5; while(outer <= inner) { cout << inner << " "; --inner; } cout << endl; ++outer; } return 0; } ----------------------------------------------------------------------------------------------------------------------------- 3. 원하는 출력값 1 2 3 4 5 X 1 2 3 4 X 1 2 3 X 1 2 X 1 X #include <iostream> using namespace std; int main() { int outer = 5; while(outer >= 0) { int inner = 1; while(outer >= inner) { cout << inner << " "; inner++; if(outer < inner) cout << "X"; } cout << endl; outer--; } return 0; } ----------------------------------------------------------------------------------------------------------------------------- 4. 구구단 프로그램 #include <iostream> using namespace std; int main() { int x; cin >> x; int y = 1; while(y <= 9) { cout << x << "*" << y << "=" << x*y << endl; y++; } return 0; }