반응형

DEV/C++ 6

[STL] cin, getline 사이에 twice enter issue

문자열 입력을 받기 위해서, cin과 get line을 동시 사용하는 경우에 cin을 위에다가 쓰고 getline을 밑에다가 썼을 때에 cin에서 받은 버퍼의 '\n'가 버퍼에서 남아 있다가, getline 함수에서 읽어 들여 버려서 getline 함수가 실행되자마자 개행 문자로 인해서 입력을 받지 못하는 문제가 발생하였다. 이런 경우 cin 함수 밑 부분에서 cin.ignore() 함수를 사용해주면 된다. 인자값의 정보에 대한 숙지가 이 문제를 해결하는 데에는 크게 의미가 있진 않으므로 std::istream::ignore

DEV/C++ 2015.03.10

[OOP] c++ 에서의 상속에 관한 키워드

class Base { }; class PublicDerived : public Base { }; class PrivateDerived : private Base { }; C++ 에서는 상속을 하려는 클래스 앞에 액세스 한정자에 대한 명시를 해줘야 하는데, 이부분에 대해서 모르는 사람들이 굉장히 많다는 것을 느꼈다. ( 내 주변만 그런가...? ) 일단은 C++에서만 나오는 개념이기도 하고, 알고 있어도 설계단계에서나 중요한 키워드이기 때문에 잘 모르게 되고 그러다 보니 알고 있다가도 까먹어서 모르는 사람도 많은거 같다. #include class Base { public: explicit Base(int x, int y) : m_x(x) , m_y(y) {} virtual ~Base() {} inlin..

DEV/C++ 2015.02.18

[OOP] Struct와 Class의 차이

사실상 객체지향에서 말하는 struct와 class의 차이는 명확하다. 하지만 이따금씩 C++을 많이 접해보지 못한 프로그래머들에겐 화제거리가 되곤 하는데 이는 C++만이 가진 모호한 객체지향성 때문인거 같다. 가령 C#이나 Java 두 언어에서 보여지는 Struct와 Class의 차이는 아주 명확한데, Struct는 기본적으로 value copy가 이뤄지는 데이터 타입이며Class는 반대로 reference copy가 발생하는 객체 타입이라는 것이다.실제로 코딩을 할때도 Struct와 Class를 다루는 코딩 방식이 판이하기 때문에 조금만 접해봐도 그 차이를 체감 할 수 있다. 하지만 C++은 Struct와 Class의 차이가 거의 없다.차이라곤 딱하나가 있는데 기본 한정자가 Struct의 경우에는 p..

DEV/C++ 2015.01.31

[STL] set iterator의 const issue

연구실 과제를 진행하다가 set컨테이너의 iterator 접근시에 값이 변경 불가능한 "error C2662 'this' 포인터를 'const Foo'에서 'Foo&'(으)로 변환할 수 없습니다." 라는 컴파일 에러를 2시간의 삽질 끝에 const_cast로 해당 클래스의 const 해제를 통해 문제를 해결했다. #include class Foo { public: Foo() : m_number(10) {} void setNumber(int n) { m_number = n; } int getNumber() const { return m_number; } bool operator e.m_number); } private: int m..

DEV/C++ 2015.01.28
반응형