임베디드

임베디드

  • 분류 전체보기 (1142)
    • PL (150)
      • C++ (108)
      • Python (39)
      • Java (3)
      • Kotlin (0)
    • 알고리즘 (462)
      • 암기 (91)
      • 백준 (328)
      • 삼성 (17)
      • 종만북 (4)
      • 프로그래머스 (22)
    • 임베디드 (411)
      • 하드웨어지식 (12)
      • ATmega128 (98)
      • 32F429IDISCOVERY (57)
      • 임베디드리눅스 (15)
      • 리눅스커널스터디16기 (2)
      • 리눅스시스템프로그래밍 (97)
      • 운영체제 (26)
      • 컴퓨터구조 (4)
      • dd (1)
      • ubuntu (81)
      • opencv (18)
    • 드론 (99)
    • TIP (12)
  • 홈
  • 태그
  • 방명록
RSS 피드
로그인
로그아웃 글쓰기 관리

임베디드

컨텐츠 검색

태그

#linuxbirthday_a_message_from_Seoul_Korea !!

최근글

댓글

공지사항

아카이브

PL(150)

  • Default 멤버 함수

    2019.08.22
  • explicit를 사용해서 묵시적 변환을 허용하지 않는 이유

    2019.08.22
  • 전위연산자와 후위연산자의 연산자 오버로딩

    2019.08.22
  • 클래스의 static 변수

    2019.08.22
  • const 키워드

    2019.08.21
  • 임시객체

    2019.08.21
Default 멤버 함수

클래스를 생성하면 기본적으로 6가지의 멤버함수가 생성된다 1. 기본 생성자 2. 소멸자 3. 복사 생성자 4. 치환 연산자 5. 주소값 반환 &연산자 6. const 객체에 대한 주소값 반환 &연산자 class Empty { // default member function Empty(); ~Empty(); Empty(const Empty &rhs); Empty& operator=(const Empty &rhs); Empty* operator&() {return this;} const Empty* operator&() const {return this;} };

2019. 8. 22. 20:51
explicit를 사용해서 묵시적 변환을 허용하지 않는 이유

C++에서는 다음과 같이 기본적으로 묵시적 변환을 허용하고 있다 int num(20) int &ref(num) 묵시적 변환은 변수를 정의할 때, 대입연산자가 생성자 형태로 변환되어서 들어가는 것을 말한다 #include using namespace std; class Simple { ... }; int main(void) { Simple s1; Simple s2 = s1; // 묵시적 변환으로 Simple s2(s1)으로 복사생성자가 호출된다 Simple s3 = 3; // 묵시적 변환으로 Simple s3(3)으로 이에 맞는 생성자가 호출된다 return 0; } 이상할 것이 없이 편해보이지만, 코드 작성에서 코드 어감상 안맞는 부분이 실행이 된다는 점이다. 예를 들어 스택을 클래스가 있다고 가정하고,..

2019. 8. 22. 15:37
전위연산자와 후위연산자의 연산자 오버로딩

전위연산자와 후위연산자를 구분하기 위해. 오버로딩 매개변수를 다르게 한다 실제 gcc에서는 전위연산자는 1 증가한 자신의 객체를 바로 반환해도 문제가 없기 때문에 const를 붙이지 않고, 후위연산자는 후위연산자 다음행에서 바뀌도록 정의하기 때문에 const 반환으로 후에 바로 생길 수 있는 값 변환을 막는다 Complex& Complex::operator++() { re_+=1; im_+=1; return *this; } const Complex Complex::operator++(int) { Complex tmp(*this); this->operator++(); return tmp; } (++n)++은 가능 ++(n++)는 불가능

2019. 8. 22. 10:32
클래스의 static 변수

만일 static 변수는 클래스 내부에서 초기화는 불가능하다. 따라서 static 변수는 반드시 전역적으로 호출해서 초기화를 해줘야만 한다. 그리고 static 변수에 접근할 때는 특정 객체에서 접근하는 것이 아닌 class 전역적으로 접근한다(class이름::(static변수)). static 함수도 마찬가지다 #include using namespace std; class Simple { private: static int num; public: // static int num; Simple() { num += 1; } static void showNum() { cout

2019. 8. 22. 10:26
const 키워드

컴파일러 해석이 불분명하기 때문에 const 키워드가 생겼다. 컴파일러는 const 객체의 멤버함수 내용이 객체에게 변화를 주는지 아닌지 모른다. 따라서 함수 뒤에 const 키워드를 통해서 const 객체도 사용할 수 있게 만들 수 있다. const를 붙인다한들 함수 내부에서 멤버변수를 바꾸는 코드가 보인다면 컴파일러가 막아버린다 // rhs는 const 선언 객체지만, const 키워드를 통해서 real, imag 함수를 불러올 수 있다 std::ostream& operator im; } 매개변수에 const를 붙이는 이유는 임시객체 때문이다. 임시객체를 참조하기 위해서는, 임시객체가 상수이기 때문에 반드시 참조연산자 앞에 const를 붙여야만 한다 const int &ref= 10;// const를..

2019. 8. 21. 17:43
임시객체

임시객체는 변수에 저장하지 않고, 말그대로 임시로 객체를 만드는 것이다. 임시객체를 참조하기 위해서는 상수와 마찬가지로 참조연산자에 const 상수 처리를 반드시 해야만 한다 예를 들어 class Tmp가 있다면, Tmp(100)라고만 선언하는 것처럼 변수에 저장하지 않는 꼴이 된다. Tmp(100)은 다음 행에서 사라진다(메모리 해제). const 참조연산자로 참조하면 지속적으로 메모리에 저장해서 사용할 수 있다 함수마다 매개변수에 const를 붙이는 이유의 대부분은 임시객체에 있다 [출처] 윤성우, 열혈 C++ 프로그래밍 [참고] https://m.blog.naver.com/PostView.nhn?blogId=nortul&logNo=197601619&proxyReferer=https%3A%2F%2Fw..

2019. 8. 21. 14:27
1 ··· 8 9 10 11 12 13 14 ··· 25
티스토리
© 2018 TISTORY. All rights reserved.

티스토리툴바