본문 바로가기

C++

비트 연산자 0. 비트 연산 n 비트 연산은 객체 상태를 추적하기 위해서 플래그를 설정할 때 유용하게 사용된다. n 모든 비트는 8비트를 가지고 있고 따라서 4바이트의 길이는 32비트의 독립된 플래그를 가질 수 있다 비트는 그 값이 1이면 설정되었다라고 하고 0이 되면 설정되지 않았다 할 수도 있다. n C++에서 각각의 비트에 작용하는 비트 연산자를 제공을 한다. 이는 논리 연산자와 비슷해 보이지만 다르다. 비트 연산자는 아래 표와 같다. 기호 연산자 & | ^ ~ AND OR 배타적인 OR 보수(Complement) n 비트 연산자 AND AND(&) 연산자는 논리 연산자(&&)와 달리 ‘&’가 한 개가 쓰인다. 두 개의 비트를 AND를 하면, 만일 두 개의 비트가 다 1이면 1이고 나머지는 0이된다. n 비트 .. 더보기
namespace Declaration #include namespace Game { int SelfMul(int nA) { return nA * nA; } } namespace Myth { float SQRT(int nA) { return sqrt(nA); } } int main() { Game::SelfMul(5); Myth::SQRT(5); return 0; } 이름이나 사용처가 헷갈릴 함수에 이름을 붙여 준다. 그리고, cout, cin, endl 을 사용할 때 신표준에 맞춰서 std::cout, std::cin, std::endl 으로 작업을 하였는데 불편함이 존재 합니다. 계속해서 std:: 를 적어주어야 하기 때문인데 using namespace Game; 라고 선언하면 Game:: 을 붙일 필요가 없어집니다. using Game.. 더보기
friend 함수 A 클래스에 B 클래스를 friend 선언 했다면 B 클래스는 A 클래스의 모든 정보에 접근과 수정 가능 해진다. 정보의 은닉성이라나 이걸 파괴하는 함수 앵간하면 안쓰는게 좋을지도 ㄷㄷ;; 클래스가 복잡하게 꼬일 경우가 있다면 쓰는게 나을거 같은생각? 뭐 클래스를 복잡하게 안 꼬으면 해결 될듯 하다. 뭐 클래스 뿐만 아니라 함수, 변수등에도 사용 가능 예제는 귀찮으니 생략 더보기
Class 에서 함수 정의에 사용되는 static C++ 에서 class 멤버 중 static 으로 선언된 멤버는 그 class로 생성된 객체(인스턴스)가 몇개든 간에 한개만을 메모리 할당을 하여 공유하여 사용한다. C++ 에서 class( 멤버 변수, 멤버 함수의 선언 & 정의 ) 에 static 이 사용되면 그 class 로 생성된 객체(인스턴스)가 몇개든 간에 한개만을 메모리 할당을 공유하여 사용한다. Example The following example shows the use of static in a class. // static2.cpp // compile with: /EHsc #include using namespace std; class CMyClass { public: static int m_i; }; int CMyClass::m_i .. 더보기
C++ inline 함수 * inline함수 - 매크로함수와 그냥 함수의 중간적인 성격을 띤 함수이다. - 일반적인 함수를 사용하면 필요할 때마다 호출하여 사용하므로 실행파일의 크기를 줄일 수 있으나 제어권의 이동이 심하므로 실행 속도가 느려진다. - 매크로 함수는 컴파일시 전개되어 치환되므로 제어권 이동이 발생하지 않으므로 속도가 빠르지만 데이터형 지정을 할 수가 없고 실행파일의 용량이 커지게 된다. - 인라인 함수는 컴파일시 통째로 매크로처럼 전개되어 속도면에서 큰 이득을 얻는다. 그리고 데이터형 체크를 할 수 있는 함수이다. 용량이 커지는 단점이 있긴 하지만 간단한 작업을 하는 함수의 경우에 이용하면 매우 편리하다. * inline 함수의 제약조건 - inline 함수 내에서는 루프문(do whie, while, for),.. 더보기