월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C++
질문있습니다!
혹시 여기서 sizeof()함수를 이용해 크기를 출력했을 때 왜 8바이트로 로 나오는지 알 수 있을까요??
- 미해결홍정모의 따라하며 배우는 C++
8.12 강 friend 관련 질문
4: 42초 경에 void doSomething(A& a, B& b) 함수를 각각 A와 B에 friend 함수로 선언을 해주었는데요. 여기서 궁금한게 생겼습니다. A 입장에서 friend 해준 doSomething함수가 A만을 다룰 때는 상관이 없지만 B까지 다루는데 어째서 허용이 되는지가 궁금합니다. 제가 강의를 보고 생각한것은 A입장에서 doSomething 함수가 뭘하던지 그리고 어떠한 매개변수를 받는지 상관을 안할테니 내꺼만 사용할 수 있도록 허용해줄테니 그다음은 doSomething 니가 알아서 해라 인가요? 음.. 그러니까 a,b라는 사람에게 dosomething이라는 사람이 무언가를 할려고 허락받는것을 각각 a,b에게 허락받는다고 생각하면 될까요? A입장에서는 자신의 것만 허용해준다고?
- 미해결홍정모의 따라하며 배우는 C++
함수 위치 질문!
c++에서 함수를 정의할 때 반드시 main()함수 위에다 정의해야 하나요??
- 미해결홍정모의 따라하며 배우는 C++
질문입니다..!
14.3강의 10:03 보다가 질문드려요. 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()} } void doSomething() { MyArray my_array; try {my_array[100];} catch(ArrayException & e) { cout << "doSomething() " << endl; throw e; } } int main() { doSomething(); try { doSomething();} catch (ArrayException & e) { cout << "main()" << endl; e.report(); } 이렇게 doSomething()함수 안에 catch(ArrayException & e)이 정의되어 있는 상태에서 e를 다시 rethrow를 해주고 실행시키면 main()함수의 첫 번째 doSomething()이 실행되고 디버깅 에러가 발생합니다. 아마 e를 다시 예외처리해주지 못하는것 같은데,왜 main()함수에 정의 된 catch (ArrayException & e)로 예외처리를 하지 못하고 에러가 나는 건지 궁금해요
- 미해결홍정모의 따라하며 배우는 C++
random shuffle이 안되는데 이유를 모르겠습니다.
#include <iostream> #include <vector> #include <algorithm> using namespace std; class Cents { private: int m_cents; public: Cents(int cents = 0) { m_cents = cents; } int getCents() const { return m_cents; } int& getCents() { return m_cents; } friend std::ostream& operator << (std::ostream& out, const Cents& cents) { out << cents.m_cents; return out; } }; int main() { vector<Cents> arr(20); for (unsigned i = 0; i < 20; ++i) { arr[i].getCents() = i; } std::random_shuffle(begin(arr), end(arr)); for (auto& e : arr) { cout << e << " "; } cout << endl; return 0; } 강의 내용 그대로 친 것 같은데 random 셔플부분만 std에 존재하지 않는다고 계속 에러나네요.
- 미해결홍정모의 따라하며 배우는 C++
같은 함수를 두 번 정의했을 때 에러가 뜨는 건 식별자 문제인가요?
제가 이해한 바로는, 이미 한 번 같은 이름으로 메모리 공간이 할당되었는데 다시 같은 이름이 쓰이게 되면 충돌 같은 게 일어나 에러가 뜨게 되는 것 같은데 이렇게 되는 게 맞나요? 아니면, 컴파일러가 이 상황 자체를 비정상적이라고 인지해서 프로그래머에게 알려주는 건가요? 또, 어떤 local scope 안에서 같은 이름으로 변수 또는 함수가 여러 번 선언되었을 때에도 같은 원리로 컴파일 에러가 뜨게 되나요?
- 홍정모의 따라하며 배우는 C++
.cpp와 .h를 분리하는 것이 어떤 면에서 좋은 건가요?
삭제된 글입니다
- 미해결홍정모의 따라하며 배우는 C++
질문이에요
13. 7 포인터에 대한 템플릿 특수화 강의를 듣던 도중에, 템플릿 파라미터가 포인터일 경우 특수화하는 것에 대한 코드를 작성하는 것을 보다가 문득 궁금해서 질문드려요. 포인터일경우 특수화하는 과정에서 template<class T> class A { private : T m_value; public : A(const T& input) : m_value(input) ... } 이였던 코드를, 포인터에 대한 특수화로 변경하시면서, 생성자의 파라미터 부분을 A(T* input)으로 바꾸시더라구요. 생성자의 파라미터 부분을 A(const T * input)이나 A(const T* & input)으로 두고 할 경우 error가 나는데 왜 error가 나는건가요 ? 특히, const T* input의 의미는 input에 저장된 주소값을 변경하지 않는다는 의미라고 생각하면, 큰 문제가 없을 것 같은데.. 설명 부탁드려요. 감사합니다!
- 미해결홍정모의 따라하며 배우는 C++
16:30 Main function
16:30 을 보면 Main function이 가장 먼저 실행되는데요 ,cout<<"Main function"<<endl 이 가장 아래에 있는데 어떻게 이게 가능한건가요?
- 미해결홍정모의 따라하며 배우는 C++
쓰레드와 logical processors?
안녕하세요 강의 11:30 을 보면 교수님이 본인 컴퓨터의 core 와 logical processors의 개수를 살펴보고 계신데요 . 제가 검색을 조금 해보니 코어수x2 = 쓰레드의 수 라는 말이 많더라구요. 그렇담 logical processor = thread 인거고, 쓰레드는 최대 16개(여기서는)까지 동원할 수 있는건가요?
- 해결됨홍정모의 따라하며 배우는 C++
std::max() 앞에 왜 std::를 붙이는건가요?
#include <algorithm>만으로도 max사용이 가능한데 왜 std::를 붙이셨는지 이유를 모르겠습니다.저는 std::없이 출력해도 값이 나오는데 이해가 안가네요 max라는 함수는 algorithm에서 이미 정의되있는거 아닌가요? std::안에도 max가 있다는건 무슨 말인가요? #include #include using namespace std; int main() { cout << max(1+3,3) << endl; }
- 미해결홍정모의 따라하며 배우는 C++
getline() 의 입력단위
12:50 을 보면 , getline()은 한 줄 전체를 입력받아 두번째 getline은 아무것도 받아오지 못하는 모습인데요 , 이말인즉슨 , getline()은 버퍼 전체를 읽고 입력버퍼를 비워버린다고 봐도 되는건가요?
- 미해결홍정모의 따라하며 배우는 C++
14:18 개행문자
14:18을 보면 cin.getline 과 cin.get을 사용한 경우의 차이를 보여주고 있습니다. cin.getline은 '₩n' 을 읽어오고 cin.get은 그렇지 않다는게 그 차이인데요 두번의 입력코드에서 상단에 cin.getline 을 쓰건 cin.get을 쓰건 하단의 cin.getline에 의해 '₩n'이 읽어지는데 출려결과를 보면 '₩n'이 실행되지 않은 모습입니다. endl도 있으니 한칸 더 줄바꿈되어야 될 것 같은데요. endl 과 '₩n' 둘중하나만 실행된 모습입니다. 보통 c에서는 개행문자를 읽으면 콘솔에 그대로 빈칸이 하나생겼는데 여기서는 그렇지 않네요 답변부탁드립니다!!
- 미해결홍정모의 따라하며 배우는 C++
c style 문자열에대해
안녕하세요 음 .. 어찌보면 c강의에 질문드려야 할 것 같기도한데 공통적인? 내용이니 여기다가 질문드립니다! 제가 알기로는 const char* String="hello" ; 의 "hello" 같은 문자열 리터럴은 끝에 '₩0'을 하나붙여 메모리의 ' 데이터 영역(BSS)ㅡ읽기만 가능한 영역' 에 저장되어 프로그램 종료시까지 존재하는것으로 알고있습니다.(그래서 같은 내용의 문자열 호출시 같은 문자열을 반복사용하는것으로 알고있구요) 그런데 cout<<"hello"; cout<<"good bye" ; string my_str="nice" char str[]="good " 의 "hello" , "good bye" "nice" "good"처럼 한번쓰고 사라질 문자열도 위와 마찬가지로 끝에 '₩0'을 하나붙여 bss - 읽기만 가능한 영역 에 저장되어 종료시까지 살아있나요? 감사합니다
- 미해결홍정모의 따라하며 배우는 C++
cin과 빈칸
안녕하세요. cin은 빈칸은 받아오지 못하는 특성이 있습니다. 근데 빈칸을 가져오지 못한다는게 콘솔에서 콘솔입력버퍼로 빈칸을 가져오지 못하는건가요 아님 , 콘솔입력버퍼로 가져오나 버퍼에서 저장하고자하는 메모리공간에 빈칸을 가져오지 못하는건가요? 감사합니다
- 미해결홍정모의 따라하며 배우는 C++
max_size()
max_size()는 string class의 capacity 의 max값을 의미한다고보면 되나요?
- 미해결홍정모의 따라하며 배우는 C++
2분7초 const char[1]
2분7초경에 "" 에 커서를 올리면 const char[1] 이라 뜨는데 실제 my_str의 사이즈는 0이라 뜹니다.(empty) 그렇담 ""은 아무내용없는 문자열이지만 문자열이니 자동적으로 null character가 반드시하나 붙어 null character가 하나만 있는 문자열이고 , 이를 고전적인 C방식인 char name[] 의 배열이나 const char* name 이라는 포인터로 다루면 null character가 하나있게 저장되는 것을 의미하는데, string이라는 클래스에서는 null character가 절대 저장안돼게 설계되있기에 ,string의 멤버변수에 아무것도 없는 비어버린 상태가 되는건가요?
- 미해결홍정모의 따라하며 배우는 C++
git commit
안녕하세요? 강의 잘 듣고 있습니다. 질문이 있는데, 내 컴퓨터에 있는 파일이 github까지 올라갈때 그 과정이 내 컴퓨터에 저장 -> git에 commit -> github서버에 push 같은 느낌으로 이해를 했습니다. 이 때, git에 commit한 파일은 따로 저장되는 디렉터리가 있나요? 있다면 어디에 저장되는지 알 수 있을까요?
- 미해결홍정모의 따라하며 배우는 C++
질문이
안녕하세요^^ 강의 잘 듣고 있습니다. 다름이 아니라 출력연산자 오버로딩할때 리턴타입으로 std::ostream& 이렇게 '&'를 꼭 붙여야하고 안붙일 경우 에러메세지가 나오는데.. 에러메세지가 무엇을 뜻하는지 잘 모르겠어서요.. 왜 꼭 &를 붙여주어야 하는거죠? 예를 들어 아래와 같이 출력연산자를 오버로딩해줄 경우(&를 안붙이고)는 왜 안되는 건지 설명 부탁드려요! friend std::ostream operator << (std::ostream& out, const Base b) { return b.print(out); } * 에러메세지 : function "std::basic_ostream<_Elem, _Traits>::basic_ostream(const std::basic_ostream<_Elem, _Traits> &) [with _Elem=char, _Traits=std::char_traits<char>]" (declared at line 60 of "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include\ostream") cannot be referenced -- it is a deleted function.
- 해결됨홍정모의 따라하며 배우는 C++
똑같이 작성했는데 오류뜨네요
왜 이럴까요