월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C++
6.18 질문이 있습니다
int main() { int i = 4; int *ptr = &i; cout << (int)ptr+1; return 0; } cout << (int)ptr+1; 여기서 1을 더한다는것은 ptr 이 가진 주소에다 4 byte를 더한다는 뜻인가요?
- 미해결홍정모의 따라하며 배우는 C++
참조 질문이 있습니다
struct Something { int v1; float v2; }; struct Other { Something st; }; int main() { Other ot; int &v1=ot.st.v1; v1=1.0; return 0 } =========================== 이코딩에서 일부분인 int &v1=ot.st.v1;에서 왼쪽 v1 과 오른쪽 v1 은 같은건가요 아니면 왼쪽 v1은 그냥 별명으로 둔건가요?
- 미해결홍정모의 따라하며 배우는 C++
6.14 참조변수 질문
void printElements(int (&arr)[5]) for(int i=0;i<5;i++) { cout<<arr[i]<<" "; } cout<<endl; } int main() {const int length =5; int arr[length]={1,2,3,4,5}; printElements(arr); return 0; } reference 가 parameter 로 받을때는 다르게 쓰이는건가요? int value=5; int &ref =&value; 여기서는 선생님이 ref 는 별명이니까 원래값이 있어야하므로 반드시 초기화를 해줘야된다 하셨는데 void printElements(int (&arr)[5]) 여기서는 다르게 쓰이는거 같네요 어떻게 쓰이는건가요?
- 미해결홍정모의 따라하며 배우는 C++
6.11 질문있습니다
while(true) { int *ptr=new int; cout<<ptr<<endl; } 이렇게 코딩하면 메모리가 계속 증가하는 이유가 뭔가요?새로운 포인터를 계속 만들어내서 인가요?
- 미해결홍정모의 따라하며 배우는 C++
부동소수점 관련 질문
교수님 안녕하십니까. 다음과 같이 값을 대입해 주었는데 데이터가 옮겨가면서 3069 -> 3069.4182.. 와 같이 값이 바뀌었습니다. 이것도 부동소수점 문제인건가요?? 부동 소수점 문제라면 이러한 문제를 해결하는 방법이 있을 까요?
- 미해결홍정모의 따라하며 배우는 C++
질문드립니다ㅠㅠ
비전공자라 많이 서툰지라.. 열심히 배우기 위해서 질문드려봅니다!! ㅠㅠ 이번에 벡터의 성분 합을 직접 표현 해보고 싶어서, 교수님이 알려주신 다양한 방법들을 통하여 아래와 같은 코드를 짰습니다. #include <iostream> #include <cstdarg> using namespace std; class y_vector { private: int m_size; int *vector; public: y_vector(const int& size) : m_size(size) { vector = new int[m_size]; } ~y_vector() { delete[] vector; } y_vector& set_array(int value, ...) { va_list list; va_start(list, value); for (int i = 0; i < m_size; i += 1) { if (i == 0) { vector[i] = value; continue; } else { vector[i] = va_arg(list, int); } } va_end(list); return *this; } void print_array() { for (int i = 0; i < m_size; i += 1) { cout << vector[i] << " "; } cout << endl; } bool is_same_size(const y_vector &v) { return v.m_size == this->m_size ? true : false; } y_vector& operator + (const y_vector& v) { y_vector dum(this->m_size); if (is_same_size(v)) { for (int i = 0; i < this->m_size; i += 1) { dum.vector[i] = this->vector[i] + v.vector[i]; cout << dum.vector[i] << endl; // 함수 내부에서는 잘되는 지 확인하려고 넣어둠 } } else { cout << "Size is not Same" << endl; return *this; } } }; int main() { y_vector yh_1(5); y_vector yh_2(5); y_vector yh_3(6); yh_1.set_array(3, 2, 1, 4, 6); yh_2.set_array(1, 1, 3, 9, 12); yh_3.set_array(2, 8, 3, 4, 7, 5); y_vector yh_4 = yh_1 + yh_2; yh_4.print_array(); return 0; } 위에 보면 체이닝을 위하여 + 산술자를 오버로드 한 함수와 벡터 성분을 결정지어주는 set_array 함수를 y_vector& 타입으로 받아주었습니다. 그러다 보니, + 산술자 함수의 리턴 값으로 어떠한 클래스를 설정해주기 위해 함수 내부적으로 임시적인 클래스의 인스턴스(dum)을 생성해 주었는데, 해당 영역에서 나가게 될 경우 소멸자에 의해 동적 할당 된 vector사라지다 보니, yh_4.print_array();에서 쓰레기 값을 출력하고, 프로그램에서 런타임 에러가 계속 발생하게 됩니다.. 입력 값으로 들어가게 된 인스턴스와 같이 연산이 되는 this에 해당하는 인스턴스의 값을 바꾸지 않고(const로 생각하여) 다른 클래스를 생성하여 반환하는게 가능 할까요..? 동적할당이다보니 불가능할것 같기도 하고, 제가 많이 알지 못하다 보니 할수없는 것을 잡고있는건지, 제가 못하는 건지도 모르겠어서 질문드립니다..
- 미해결홍정모의 따라하며 배우는 C++
생성자 안에서의 try catch 질문입니다
3:04에서 throw가 없는데 작동한다는 것에 질문입니다. class A에서 throw된 에러가 class B에서 잡히는데 이 때 main함수의 try안에서 만들어진 객체 b가 정상적으로 만들어지지 않아 한번 더 catch 된 것인가요?
- 미해결홍정모의 따라하며 배우는 C++
6.8 포인터 질문
struct MyStruct { int array[5]={9,7,5,3,1}; }; void doSomething(MyStruct * ms) { cout<<sizeof((*ms).array)<<endl;//20 } int main() { MyStruct ms; cout<<ms.array[0]<<endl; cout<<sizeof(ms.array)<<endl; doSomething(&ms) } 여기서 cout<<sizeof((*ms).array) 이부분의 *는 de-reference 를 뜻하는건가요 아님 포인터를 뜻하는건가요?
- 미해결홍정모의 따라하며 배우는 C++
19:23초에 Second sec 에서 이거 왜 ..아주기초
자꾸 뒷 내용을 들으면 앞에를 까먹고 ㅠㅠ 19:23초에 Second sec; 여기 쓰시는데 sec이런거가 의미하는게 도대체 뭔가요 ㅠㅠ Second클래스 쓰고 이런거 까지는 이해가 가는데,, 도와주세요 넘 기초인거 같은데 ㅜㅜㅜ 모르겠어요
- 미해결홍정모의 따라하며 배우는 C++
정렬코딩을 짜봤는데 정렬이 안됩니다 어디가 잘못되었는지 봐주세요 ㅠㅠ
using namespace std; void printArray(int array[], int length) { for (int i = 0;i < length;i++) { cout << array[i] << " "; } cout << endl; } int main() { const int length = 5; int ij = 0; int a[length] = { 3,5,2,1,4 }; //swap //int temp = int[0]; //int[0] = int[1]; //int[1] = int temp; printArray(a, length); for (int i = 0;i < length-1;i++) { for (int j = i + 1;j < length;j++) { if (a[i] > a[j]) ij = a[j]; a[j] = a[i]; a[i] = ij; } } printArray(a, length); } 이렇게 하면 정렬이 될꺼라 생각했는데 계속 안되네요 어디가 잘못된건가요?
- 미해결홍정모의 따라하며 배우는 C++
에러 질문
안녕하세요 교수님! 연습해보느라고 프로젝트를 하나 만들었는데 오류가 나는데 왜 나는지 모르겠어서 질문 드려요 .cpp 파일 2개( 메인 포함) .h 파일 1개로 이루어진 프로젝트입니다. 오류 코드는 이렇게 나옵니다 2군데 예요. 1>------ Build started: Project: Project1, Configuration: Release Win32 ------ 1>MSVCRT.lib(exe_main.obj) : error LNK2001: unresolved external symbol _main 1>D:\UUUU\CSCSC)\Library\CSCSCpractice\Release\Project1.exe : fatal error LNK1120: 1 unresolved externals 1>Done building project "Project1.vcxproj" -- FAILED. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
- 미해결홍정모의 따라하며 배우는 C++
copy constructor에 대한 질문입니다.
안녕하세요 먼저 항상 좋은 강의에 감사드립니다. 강의 중에 Copy constructor에 대한 개념이 나오게 되는데, 이게 기본적으로 숨어져있다고 설명해주셨습니다. 앞에서 위임생성자나 함수 overload를 봤을 때, 생성자 함수가 overload된 형태라고 이해하였는데, ( 클래스의 instance를 생성할 때는 일반적인 생성자 함수가 호출되고, 클래스 타입의 변수를 함수의 인자로 사용할 때는 클래스를 인자로 받는 overlaod 된 생성자 함수를 호출 한다고 생각했습니다.) 제가 비 전공자라 주변에 물어볼 사람도 없고.. 올바르게 이해를 하고 있는건지 궁금해서 이렇게 질문 드리게 됩니다.이게 제가 개념적으로 맞게 접근한건지 궁금합니다.
- 해결됨홍정모의 따라하며 배우는 C++
bona kim님과 같은 질문입니다~!
Q)어떠한 이유로 main()의 첫 doSomething(); 유무에 따라 에러가 발생하는 건가요? 본 코드는 영상 (9:50)와 동일합니다. 단, main() 첫 줄에 doSomething()을 호출한 것만 다릅니다. class Exception { public: void report() { cerr << "Exception report" << endl; } }; class ArrayException : public Exception { public: void report() { cerr << "Array exception" << endl; } }; class MyArray { private: int m_data[5]; public: int& operator [] (int index) { if (index < 0 || index >= 5) throw ArrayException(); return m_data[index]; } }; void doSomething() { MyArray my_array; try { my_array[100]; } catch (ArrayException& e) { cout << "doSomething() " << endl; throw e; // error break out!! } } int main() { doSomething(); // only this line is different from before!! try { doSomething(); } catch (ArrayException& e) { cout << "main()" << endl; e.report(); } return 0; } 위 코드는 사실상 doSomething에서 특정 대상을 throw할 필요없이 그냥 throw해도 main()의 catch가 받아줘야 하는 코드라고 생각해요. test) throw e; vs throw; = 기능상 결과 똑같음(위 코드에 한에서만). throw와 catch 순서 상 : class MyArray (throw) -> void doSomething (catch & throw) -> main (catch) 그런데 자꾸 런타임 에러가 발생합니다. 아래 사진, 또는 Unhandled exception 에러 발생. (디버깅)본 에러는 doSomething의 throw이 작동하는 순간 발생합니다. 신기하게도 main()의 가장 첫 번째 doSomething();을 지워주면 이러한 문제가 발생하지 않고, 함수 doSomething안에 있는 throw도 main()의 catch까지 문제없이 전달됩니다.
- 미해결홍정모의 따라하며 배우는 C++
cin.clear() 와 cin.ignore 의 질문
cin.clear(); 와 cin.ignore()의 역활이 뭔가요? 그리고 왜 선생님께선 같이 쓰신건가요?
- 미해결홍정모의 따라하며 배우는 C++
5.10 강의 질문
int main() { cout << "Enter an integer number : "; int x; cin >> x; //cin.fail() if (cin.fail()) { cin.clear(); cin.ignore(32767, '/n'); cout << "try again" << endl; } else { cin.ignore(32767, '\n'); cout << x << endl; } } 이렇게 했을떄 99999999999999같은 범위를 초과하는 숫자를 넣었을때 왜 try again은 안뜨는 것이고 왜 console창에 press enter key.... 이런게 안뜨고 계속 가능건가요?
- 미해결홍정모의 따라하며 배우는 C++
0.4.0 질문
#include <iostream> int main(){return 0; } 이 코드 빌드솔루션을 했는데 교수님처럼 깔끔하게 안 뜨고 MSVCRTD.lib(exe_winmain.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 1>C:\Users\myoo0\source\repos\Project1\Debug\Project1.exe : fatal error LNK1120: 1 unresolved externals 1>Done building project "Project1.vcxproj" -- FAILED. 이렇게 에러코드가 뜹니다 ㅠㅠ 제 프로젝트 이름은 project1 이예요
- 해결됨홍정모의 따라하며 배우는 C++
매크로 상수 정의
매크로를 사용해서 상수를 정의해도, 강의에서 나온 것 처럼 헤더파일을 이용하면, 필요한 파일에서만 적용 할 수 있으니, 큰 무리 없지 않을까요? 상수라고 할떄는 수정이 불가능 하다는 뜻으로 사용 할 수도 있지만, 절대 불변의 상수 (중력 가속도 같은 혹은 수학적 상수나 스탠다드로 정해져 있는 숫자들.. 바이트가 8 비트라는 등등의) 경우도 있는데, 후자의 경우는 헤더 파일에 매크로로 상수를 정의한 다음에, 필요한 파일에만 include 하는 방법으로 사용해도 괜찮지 않을까 하는 생각이 드는데... 이것도 권장할 만한 방법은 아닌가요?
- 미해결홍정모의 따라하며 배우는 C++
강의 29분 30초 구현에 대해 질문드립니다.
강의 29분 30초에 주문하신 기능을 구현하고자 많은 고민을 해 보았습니다. 우선 상대방에게 제 메세지를 보내고 getline(cin, message); stream <<message; stream << std::endl; 그동안 상대방이 보낸 메세지를 모아서 아래와 같이 한꺼번에 출력 하고자 했습니다. while (stream) { std::getline(stream, line); stringstream << line; } std::cout << stringstream.rdbuf()<<std::endl; 그런데 문제는 while문이 무한 반복된다는 것이었습니다. stream에 상대방이 보낸메세지가 더 없다는 것을 확인하는 것은 어떻게 구현할 수 있을까요? 귀한 조언 부탁드립니다. 감사합니다.
- 해결됨홍정모의 따라하며 배우는 C++
endl 없이도 자동개행?
안녕하세요 질문드립니다 원래 endl을 이용해서 개행을 하는건데,, 자동으로 개행이 되네요? 지금 올린 사진은 개행이 두 번 되있고, endl을 이용하지 않고 돌리면 개행이 한 번 되있는 걸로 나옵니다 뭔가 설정이 다르거나 한 것 같은데 무엇이 문제일까요?
- 해결됨홍정모의 따라하며 배우는 C++
0.4 0,1,2강의 전반적으로 이해에 관해
안녕하세요 질문올립니다 비쥬얼스튜디오가 너무 편하고,그대로 이용하면 내부구조를 모를 수 있기에 파일생성원리에 대해 가르쳐주셨습니다만,. 솔직히 복잡해서 어렵습니다. (내용이, 교수님은 잘가르쳐주시지만..)세세하게 가르쳐주시기때문에 좀 더 시간을 들여 여러번 강의를 듣고 여러번 직접 파악해야 되겠지만.. 너무 앞부분을 잡고 있는것 같아 고민입니다.(2번 강의듣고 2번 생성 원리에 대해 파악하는 중) 그냥 쭉 진도 나가는게 좋을까요?아니면 완벽하게 내부구조를 이해하는게 좋을까요?