월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C++
다른 클래스에서 클래스 선언에 관한 질문이 있습니다.
이렇게 main에서 생성자를 이용한 클래스를 쓸 때는 생성자가 파라미터 값을 가지면 선언 시에 해당 파라미터 값을 넣어줘야 에러가 발생하지 않습니다. 하지만 이와 같이 다른 클래스에서 생성자가 있는 클래스를 선언할 때는 오히려 파라미터 값을 넣어주게 되면 에러가 발생합니다. 이는 왜 이런 것인지 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C++
레퍼런스 const 질문
void doSomething(const int& x){ cout << x << endl;}이 경우 값을 바로 넣어도 되기 때문에 굉장히 편해진다고 하시는데, 이 경우 굳이 const int x로 해도 똑같지 않나요??파라미터를 const int& x로 받으면 편해진다는 것이 잘 이해가 되지 않아 물어봅니다.
- 미해결홍정모의 따라하며 배우는 C++
3.9 연습문제 기사
#include <iostream>#include <bitset>int main(){ using namespace std; unsigned char option_viewed = 0x01; unsigned char option_edited = 0x02; unsigned char option_liked = 0x04; unsigned char option_shared = 0x08; unsigned char option_deleted = 0x80; unsigned char my_article_flags = 0; cout << "option_viewed " << bitset<8>(option_viewed) << endl; cout << "option_edited " << bitset<8>(option_edited) << endl; cout << "option_liked " << bitset<8>(option_liked) << endl; cout << "option_shared " << bitset<8>(option_shared) << endl; cout << "option_deleted " << bitset<8>(option_deleted) << '\n' << endl; //view article my_article_flags |= option_viewed; cout << "option_viewed " << bitset<8>(my_article_flags) << endl; //click like my_article_flags ^= option_liked; cout << "option_liked " << bitset<8>(my_article_flags) << endl; //click like again my_article_flags ^= option_liked; cout << "option_liked " << bitset<8>(my_article_flags) << endl; //delete if (my_article_flags & option_viewed) { my_article_flags |= option_deleted; } cout << "option_deleted " << bitset<8>(my_article_flags) << endl; return 0;}무슨 문제가 있는지 마지막 delete에서 build가 되지 않는 오류가 발생합니다. 이유가 무엇일까요?
- 미해결홍정모의 따라하며 배우는 C++
char *[] 자료형에 대해 질문 드립니다.
안녕하세요 강의를 수강 중에 char*[]자료형에 대한 질문이 생겨 글을 남깁니다제 컴파일러에서는 해당 방식으로 문자열을 저장하면 오류가 발생하는데, 이는 컴파일러 버전 때문인가요..?앞에 const를 붙여야 정상적으로 초기화가 되는데, main의 파라미터로 쓰이는 char *argv[]는 오류가 발생하지 않아 문의드립니다.
- 미해결홍정모의 따라하며 배우는 C++
수업 강의안 질문
혹시 강의안 정리되어 있는게 있을까요?어디 정리해서 까먹을때 마다 찾아보고 싶어서요.감사합니다.
- 미해결홍정모의 따라하며 배우는 C++
연습문제 질문입니다.
int num1{0}; 처럼 uniform initialization을 하게 되면 error가 뜨고 int num1(0) direct initialization을 하면 컴파일이 되는데 어떤 차이 인가요?
- 미해결홍정모의 따라하며 배우는 C++
6:21 assignTeacher
안녕하세요 수업을 들으면서 코드를 작성하던중 다음과 같은 오류가 나타나서 여쭈어봅니다. const 를 지우고 하면 문제없이 실행이 되는데 왜 이러는건가요 ?
- 미해결홍정모의 따라하며 배우는 C++
이중 포인터에 저장되는 것에 대해 궁금한 점이 있습니다.
이중 포인터에는 포인터의 주소만 저장이 가능한 것으로 알고 있습니다. 그래서 동적 다차원 배열을 만들 때 이중 포인터를 정의하면int** matrix = new int* [row];이렇게 정의가 가능합니다. 제가 이해가 안되는 부분은 바로 뒤에 나오는 반복문 입니다.for (int r = 0; r < row; ++r) { matrix[r] = new int[col]; }여기서 matrix에 저장되는 것이 new int[col] 인데, 이는 포인터가 가지는 행렬의 주소로 생각 됩니다. matrix[0]은 matrix 라는 이중 포인터 안에 저장되있는 첫번째 포인터를 나타내어서 저렇게 작성되는 것인지 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C++
소멸자에서 Exception Error가 발생하는데 원인을 잘 모르겠습니다.
안녕하세요, 9.12 이니셜라이저 리스트 강의 수강중에 동일한 코드 빌드시 그림과 같이 소멸자에서 에러가 납니다. 원인이 무엇인지, 제가 어떤 부분에 대한 이해가 부족한 것인지 짚어주시면 감사하겠습니다.
- 미해결홍정모의 따라하며 배우는 C++
6.8강 중에서 struct에 포인터 사용 부분에서 질문이 있습니다.
이와 같은 Mys 라는 struct가 있을 때 포인터 변수 k를 선언한 후 일반 정수값을 바꾸는 것은 가능한데, 포인터 변수를 이용해서 행렬값을 넣는 것은 불가능 한 것인지 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C++
대입 연산자 오버로딩 연습문제 질문
IntArray& operator = (const IntArray& source) { if (this == &source) return *this; delete[] m_data; m_length = source.m_length; if (source.m_data != nullptr) { m_data = new int[m_length]; for (int i = 0; i < m_length; ++i) m_data[i] = source.m_data[i]; } else m_data = nullptr; return *this; } IntArray& operator = (const std::initializer_list<int>& list) { // 어차피 IntArray와 Initializer_list는 다른 자료형이므로 같은 메모리를 공유하고 있지 않을 것이기 때문에 self-assignment 방지는 필요 없지 않을까? delete[] m_data; m_length = list.size(); m_data = new int[m_length]; int count = 0; for (auto & element : list) { m_data[count] = element; ++count; } return *this; } int main() { /* case 1) assignment operator 양 쪽 모두 IntArray인 경우 */ IntArray array1 {1, 2, 3}; IntArray array2 {4, 5, 7}; array1 = array2; cout << array1 << endl; /* case 2) assignment operator 오른쪽에 initializer list가 오는 경우 */ IntArray array3 {1, 2, 3}; array3 = {4, 5, 7}; cout << array3 << endl; return 0; } 수업 중 나온 연습문제에 대해 두 가지 방식으로 구현을 해보았습니다. operator overloading을 할 때 IntArray를 parameter로 받을 수도 있고, initializer_list를 parameter로 받을 수도 있다고 생각했기 때문입니다. 두 가지 operator overloading을 각각 따로 구현해보았을 때,(1) IntArray& operator = (const IntArray& source); 의 경우 main 함수에 있는 두 가지 경우가 모두 정상적으로 실행되는 반면,(2) IntArray& operator = (const std::initializer_list<int>& list);의 경우 case2)만 에러 없이 정상적으로 실행되었습니다. (case 1)에서 cout으로 확인해보면, 대입은 정상적으로 이루어졌으나 에러는 아래와 같은 에러메시지가 뜹니다!) operator overloading 시 parameter를 IntArray로 받는 (1)의 경우, 대입 연산자 우측에 initializer list가 있는 case2에서는 실행이 되면 안될 것 같은데 에러메시지 없이 대입가능한 이유가 궁금합니다!
- 미해결홍정모의 따라하며 배우는 C++
제가한 선택 정렬 코드 리뷰 가능할까요?
제가 먼저 풀고, 풀이를 보려 했는데 어지러워서제가 한게 좀더 간단한거 같아 혹시 다른 분들 의견이 궁금하여 여쭤 볼겸 평가 부탁드립니다
- 미해결홍정모의 따라하며 배우는 C++
벡터에 변수로 array 입력
std::vector<int> array; int arr[] = { 1, 2, 4, 5, 6 }; int* ar = new int[5]; ar = arr; //초기화 하는 법 std::vector<int> array2 = { 1, 2, 3, 4, 5 }; std::vector<int> array3 = arr; 벡터를 사용한 동적 배열의 경우에는 new int를 사용한 동적 배열처럼 변수로 입력 받아 배열을 만들 수 있는 방법이 없는지 궁금합니다. vector를 초기화 할 때 arr을 이용하려고 하니 계속 오류가 발생하는데, arr처럼 초기화 하기 위해서는 array3에 같은 값을 적어주는 방법 밖에는 없는 지 궁금합니다. 그리고 정적 배열에 비해 동적 배열이 가지는 장점이 사이즈를 런타임 중에 결정할 수 있다는 것만 있는지도 궁금합니다. 항상 친절하신 답변 정말 감사합니다.^^
- 미해결홍정모의 따라하며 배우는 C++
포인터 배열
이런 식으로 배열을 초기화 하게 되면, matrix에는 첫번째 원소의 주소만 저장이 되지만, 컴퓨터 내부에서는 row * col개의 원소 만큼의 주소를 matrix에 할당해주는 것인지 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C++
for 문 사용 시 array 복사
강의 중 교수님께서 포인터가 array 에 주로 이용된다고 하셨습니다. 그 과정에서 사용하는 이유가 데이터를 파라미터로 넣어주면 다시 복사가 되고, 이를 for 문 안에서 실행시키면 계속 복사가 되어 느려져 사용한다고 하셨습니다. 여기서 복사가 된다고 하는 것이 for 문을 이용해서 array[i]의 i를 바꿔가며 새로운 값을 넣게되면 해당 array는 내용이 업데이트 되면서 계속 새롭게 생겨나서 느려진다는 것인지 궁금합니다. 강의의 어떤 부분에 해당 설명이 있는지도 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C++
Child에서 m_i(1) 초기화 안되는 이유가...
class Mother { public: int m_i; }; class Child : public Mother { public: Child() : m_i(1024) // <-------------------- error! {} }; 안녕하세요, Child에서 m_i(1) 초기화 안되는 이유가, 결국에는 Mother에서 초기화를 이미 했기 때문이라는 것일까요? 아니면 무조건 Mother에서 초기화를 해야한다는 것일까요?
- 해결됨홍정모의 따라하며 배우는 C++
배열의 크기에 대한 질문이요
int a[3];cout << sizeof(a) <<endl; cout << sizeof(a[3]) <<endl;이 둘의 출력결과가 다른이유는 무엇인가요??
- 미해결홍정모의 따라하며 배우는 C++
5.4 goto
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 강의를 수강 중인 학생입니다. 다름이 아니라 만약 if문을 이용해서 어떤 조건을 만든 다음, 해당 조건이 성립하면 밑의 코드들을 몇 개 뛰어넘고 다른 코드로 바로 이동하기 위해서는 goto 말고 다른 방법이 있을까요??
- 미해결홍정모의 따라하며 배우는 C++
9.5 증감연산자에서 예제 실행이 이상해요
결과값이 위 그림과 같이 32758로 이상하게 나옵니다그런데 아래와 같이 friend 함수에서 입력 파라미터에서 const와 reference를 없애니 정상적으로 나옵니다.
- 미해결홍정모의 따라하며 배우는 C++
생성자의 매개변수 유무와 괄호 유무
안녕하세요 16분 경 해당 캡처사진 코드 관련 질문드립니다. 18번째 줄의 생성자의 매개변수를 둘다 초기화 하시고int main 함수에서Fraction one_third (); 라고 쓰면 안된다고 하셨습니다'파라미터(매개변수)가 없기 때문에 괄호를 삭제해주어야한다' 라고 하셨는데이 경우는 생성자의 매개변수가 없는 것이 아니라 보내는 인자값이 없는 것 아닌가요?생성자에는 매개변수가 2개가 존재하는데..헷갈리네요 감사합니다.