묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결홍정모의 따라하며 배우는 C++
7분쯤에 질문이있습니다
7분쯤에 선생님이 이런식으로 코딩을 해주셨는데 Mystring hello("Hello"); cout<<(int*)hello.m_data<<endl; { MyString copy=hello; cout<<(int*)copy.m_data<<endl; } 여기서 output 둘다 006AF320 로 같게 나오는데 m data 가 가지고 있는 값이 같다는건가요 아니면 m data 포인터의 주소값이 같다는 뜻인가요?
-
미해결홍정모의 따라하며 배우는 C++
구조체를 굳이 포인터나 참조를 해서 쓰는 이유가 있을까요??
Psrson person person.age =5; 이런식으로 쓸 수 있는데 사실 사용법도 비슷한데 굳이 포인터나 참조를 해서 사용하는 이유가 있을까요?
-
미해결홍정모의 따라하며 배우는 C++
int 와 char 의 차이
안녕하세요 강의 시청 중 int 와 char의 차이에 관해 궁금증이 생겨 질문드립니다. 강의에서 char은 아스키코드를 통해 정수로 데이터를 저장하므로 int 와 마찬가지로 사칙연산이 가능하고, 또 차이점은 같은 바이트에 이진수로 정수를 저장하지만 int 가 char보다 더 넓은 범위의 정수를 저장하는 것으로 배웠습니다. 여기서 좀 헷갈리는 것이 그럼 int 와 char 의 차이가 미묘합니다. char cValue = 69;// 아스키 코드 값을 저장하므로... cout<< cValue; //출력값 : E 위가 성립함은 이해가 갑니다. cout<< 'S' - 8; //출력값 : 75 그런데 이 윗줄의 출력값이 75의 아스키 넘버에 해당하는 K가 아닌 75가 출력될 수 있었던 이유가 궁금합니다. #질문에 참고한 링크입니다 1) https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=lsv400&logNo=100090853321 2)https://stackoverflow.com/questions/15869931/practical-difference-between-int-and-char
-
미해결홍정모의 따라하며 배우는 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 식별자 가 정의되어있지 않습니다 라고 뜹니다.