묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결홍정모의 따라하며 배우는 C++
매크로에선 식별자가 필요없는가? 에 대한 질문
안녕하세요! 1) 강의 4:68즈음에 #define MAX(a,b) ( (a) > (b) ) ? (a) : (b) 이런 식을 나오는데 함수와 다르게 a나 b에 대해 int 선언 같은 걸 안해줘도 되나요?? 2) 함수와 역할이 거의 흡사한 것 같은데 차이점이 뭔지 궁금합니다. 적용 범위의 차이인가요?
-
미해결홍정모의 따라하며 배우는 C++
특정 프로젝트 빌드
강의 보는데 제가 놓친건지 잘 모르겠지만 빌드 하실 때 프로젝트 언로드도 아니고 소스파일 빌드 제외 하시는 것 같지도 않은데 어떻게 특정 프로젝트만 빌드하고 결과 출력을 하는지 단축키가 궁금 합니다.
-
미해결홍정모의 따라하며 배우는 C++
중괄호의 포함관계
안녕하세요 강의 4:40 대에 소속된 중괄호가 다르면 같은 변수명을 초기화하더라도 메모리 주소가 다른 곳에 저장된다고 나옵니다. 그리고 강의 7:15에서는 x가 중괄호 밖으로 나온 순간 사용할 수 없다고 합니다. 그런데 강의 8:10에서 초기화를 하지 않고 "안 쪽"의 중괄호의 x=2를 쓰고, 그 떄의 주소를 보면 "바깥 괄호"의 x 주소를 그대로 사용하는 것을 확인할 수 있습니다. 중괄호의 포함관계가 적용되는 것인가요? 포함관계가 없는 중괄호 끼리는 변수를 혼용해서 못쓰는 것인가요? ex) int main () { int x = 4; { x =5; int y = 4; } { y=6; } } 위 코드는 에러가 납니다. 그 이유를 분석해보면 , 포함관계가 있는 중괄호라면, 즉 큰 범위에서 정의된 x는 값을 변경하는 게 가능하지만 독립된 범위에서 정의된 y는 포함관계가 없는 중괄호에서의 y는 정의되지 않았기 떄문에 값을 변경하는 게 불가능해서 인가요? 그런데 .. 오로지 포함관계로 볼 수 도 없는 것이 안 쪽 중괄호가 바깥 중괄호에 포함되는 것이라면 int main() { int x =4; { int x= 5; } } 위 코드는 에러가 나야합니다. 큰 범위의 중괄호에서 이미 정의된 x를 두 번 정의하기 떄문에요. 하지만 주소값을 출력해보면 위 x와 아래 x가 다른 메모리 주소값을 갖게 됩니다. 정리를 하자면, int main() { int x = 5; { int x= 3; } } 이 가능하려면 int main() { int x =3; { x=5; } } 가 가능할 수 없다고 생각합니다.
-
미해결홍정모의 따라하며 배우는 C++
16분 17초쯤에 질문이 있습니다
선생님께서 Fraction one_thirds=Fraction{1,3}; 이 경우는 복사한 instance 가 one_thirds 로 들어가 초기화를 해주신다고 하셨는데 instance 가 만들어지기 위해선 변수명을 지정해주어야하는거 아닌가요? 예를들어 Fraction one_thirds=Fraction a{1,3}; 이런식으로 해야지 복사된 instance 가 one_thirds class 에들어가서 초기화가 되는거 아닌가요?
-
해결됨홍정모의 따라하며 배우는 C++
func_wrapper 매개변수 질문입니다
안녕하세요 template<typename T> void func_wrapper(T &&t) { func(std::forward<T>(t)); // forward R로 오면 Rref로 L 로 오면 Lref 로 바다줌 } int main() { MyStruct s; func_wrapper(s); func_wrapper(MyStruct()); // template에 넣을땐 다 L-ref 로 들어가는 문제 //func(s); // L-ref //func(MyStruct()); // R-ref return 0; } 위에 template<typename T> void func_wrapper(T &&t) { func(std::forward<T>(t)); } 에서 매개변수를 T &&t 로 받고있는데 main 함수내에 func_wrapper(s); func_wrapper(MyStruct()); 에서 MyStruct()는 R-ref로 들어갈수있다고 생각이드는데 s는 l-ref인데 어떻게 T &&t 로 넣을수있는지 궁금합니다
-
미해결홍정모의 따라하며 배우는 C++
6.8 어쩨서 함수안에서 dereference 한 값이 함수밖에서도 영향을 주나요?
//void printArray(int array[]) void print Array(int *array) 서로 같다 { cout<<*array<<endl;//op 9 *array=100;//함수밖에서도 변수의 값을 바꿀수있다 } int main() { int array[5]={9,7,5,3,1} printArray(array); cout<<array[0]<<" "<<*array<<endl; } 선생님이 print array함수 안에서 *array=100 이런식으로 하면 함수밖에서도 변수의 값은 바꿀수있다하셨는데 그렇게 할려면 & reference operator 를 써줘야하는거 아닌가요? int main()에서 복사된값이 printArray 함수로 들어가는거일텐데 어쩨서 함수밖에서도 변수의 값이 바뀌나요?
-
해결됨홍정모의 따라하며 배우는 C++
8:10 질문입니다
안녕하세요! 1. 8:10초에 AutoPtr<Resource> res = new Resource; 는 포인터가 아니라 자체가 스마트 포인터이기 때문에 *res가 아닌 res로 한다고 하셨는데 new Resource는 메모리 동적할당을 받아서 주소를 가지고 있는데 res에 넣는게 가능한건가요?? 2. AutoPtr.h 헤더 내부에 AutoPtr(AutoPtr &a) { m_ptr = a.m_ptr; a.m_ptr = nullptr; } 이 함수는 디버깅해보니 이 예제에선 아예 사용되지 않던데 그냥 이렇게 쓰인단걸 알려주시기 위해서 이 강의에 넣으신건가요??
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
배열 질문!
강의에서 배열이란것 자체가 시작위치를 가리키는 포인터라고 표현을 하셨는데 시작위치를 가리키고 있다는 것은 배열의 시작지점을 배열이란것이 주소 값을 통해 가지고 있는다라고 이해가되는데 이런 의미라고하면 디버깅 모드에서 statinfo 라는 자료형의 monsters 배열을 메로리 검색해보면 바로 값이 내장되어있는 스택메모리의 위치가 보여지고 만약 monsters 배열이 배열의 시작주소를 가리키고 있다면 &monsters 검색하게된다면 가령 배열의 주소가 0x007AFB4C 이라면 (배열의 값을 가지고 있는주소임) &monsters 는 0x007AFB4C를 가지고 있는 또하나의 메모리가 되어야 하는 건 아닌가요? 마치 포인터 처럼 예를들어 main 안에 int number = 0xaaaaaaaa; int * ptr = &number; 일때 number 의 주소값이 ptr 이라는 포인터변수안에 들어가있고 디버깅을 찍어서 확인해보면 &ptr 메모리검색을해보면 실제로도 number 의 주솟값이 들어가 있는것을 알수있습니다. 물론 배열이란것자체가 주소값이기 때문에 포인터 변수에 대입가능하고 메모리 검색자체도 &를 붙이지 않아도 되고 주소값이라는 건 충분히 이해가 되었지만 배열이란것이 "처음 주소를 가리키고 있다" 라는 말이 이해가안됩니다. 내부적으로 배열이 처음주소를 가리킨다면 그 처음주소를 가리키는 또다른 메모리가 존재를 해야하는것이아닌가요? 궁금해서 질문 드립니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
모던 c++20 관련 질문
강의 후반부에 모던 c++를 다루는 것으로 알고 있는데 혹시 모듈같은 c++20 관련 내용도 다루실 예정이 있으신가요?
-
미해결홍정모의 따라하며 배우는 C++
이렇게 정리 했는데 제가 잘 이해한걸까요?
(사진)
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
NullPtr 클래스의 연산자 오버로딩
반환 타입이 정의되어있지 않은것 등이 조금 헷갈려서 이전 영상에서 다시 보고 싶은데요, 혹시 어느 부분을 보면 될까요?
-
미해결홍정모의 따라하며 배우는 C++
함수에서 동적할당 관련 궁금합니다
안녕하세요? 함수내에서 변수를 선언하면 함수 호출이 종료될 때 변수에 대해 할당된 메모리가 반환되는것으로 알고 있습니다 다만 함수내에서 동적할당을 할 시에는 delete를 하지 않으면 메모리가 계속 유지가 되는데 이는 함수안의 변수가 stack에 저장이 되서 그렇고 동적할당을 할 시에는 heap에 저장이 되어 그렇다고 생각하면 될까요?
-
미해결홍정모의 따라하며 배우는 C++
[15:48] 복사 생성자 필요한지?
안녕하세요! 항상 답변 감사드립니다. AutoPtr 클래스에서 복사생성자가 구현되어있는데 이 복사생성자는 이 코드에서 쓸모가 없는 코드가 아닌가요..? (아래 대입연산자 오버로드가 되어있으므로)
-
미해결C 와 C++ 을 동시에 배워보자 - 두들낙서의 C/C++
#define 형식지정도 컴퓨터가 알아서 하나요?
예를들면 #define PI 3.14 알아서 전처리기에서 PI에 대입되는 3.14를 int를 처리하는건가요
-
미해결홍정모의 따라하며 배우는 C++
함수 parameter
안녕하세요, 좋은 강의 해주셔서 감사합니다. 질문드리고 싶은 것이 있는데, 예를 들어 int nothing(int x = 1, int y=2, int z=3);같은 함수가 정의되어 있을 때, x와 z는 디폴트 값을 사용하고 y만 다른 값으로 변경한 함수를 활용하고 싶으면 어떻게 하여야 하나요? python의 경우 nothing(y = 3)같은 식으로 활용이 가능했는데 c++은 아닌 것 같아서 질문 드립니다.
-
해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
이런 유형의 문제
강의 너무 잘 듣고있습니다. 강의를 듣다가 43번 44번 같은 유형의 문제가 제 취약점인 것을 확인했습니다. 이런 유형의 문제를 더 풀어보고 싶은데 혹시 추천해 주실만한 문제가 있는지 궁금합니다.
-
미해결
opencv 오류
현재 opencv 4.4.0 사용중이고 CV_HAAR_FIND_BIGGEST_OBJECT | CV_HAAR_SCALE_IMAGE 이부분에서 오류 뜨는데 해결방법 알수 있을까요? 오류 내용은 E0020 식별자 가 정의되어있지 않습니다 라고 뜹니다.
-
미해결홍정모의 따라하며 배우는 C++
9.8[3:40] Dollar -> cents 변환 문제
안녕하세요, Cents 클래스와 Dollar클래스를 이용하여 Dollar -> cents로 변환을 하고있는데, 메인함수에서 Cents cents = dol; 이 부분이 잘 이해가 가지 않습니다. 제가 이해한 프로세스가 1 .Dollar dol(3); 으로 선언 2. Dollar 클래스 안에 operator Cents()로 Cents로 형변환 오버로딩이 실행되서 dol(3)의 타입이 Cents가 됨. 3. 따라서, 메인함수의 cents객체에 대입 가능 (Cents가 사용자 정의 타입이므로) 제가 이해한게 맞나요..?
-
해결됨홍정모의 따라하며 배우는 C++
17:00 &의 위치
void printElement(int &arr[4]) 라고 입력을 했을때 오류가 생깁니다..... 반면에 강의처럼 void printElement(int (&arr)[4]) 라고 입력을 하면 오류가 생기지 않는데... 왜 그런 걸까요? 저 괄호를 굉장히 의도하고 쓰신거 같은데 딱히 설명을 안되어 있네요.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
강의 29분 45~50초 부분
typedef를 사용해서 Iterator<T> iterator를 선언하는 부분에서 제대로 이해하기 어려운것 같아서 질문남깁니다. typedef를 선언했을때, main함수의 for문안에서 Vector<int>::iterator 했을때 자동적으로 iterator<T> 타입을 이용한다는 부분이 와닿지 않습니다. 좀더 구체적인 설명 조금 부탁드려도 될까요? 왜 저것을 사용했을때 Vector<int>::iterator 가 문법적으로 문제가 없는지 잘 모르겠습니다. 클래스명::을 사용하는 문법은 어떤 상황에서 사용하는건가요? std:: 라는것처럼 네임스페이스 부분으로 이해한 경우는 있는데, 클래스명으로 ::으로 했을때는 어떤 경우에서 사용하는지 헷갈리는것 같습니다. 추가 보충설명 해주시면 정말 감사하겠습니다.