임베디드

임베디드

  • 분류 전체보기 (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)

  • 복사 생성자를 정의해야 하는 이유

    2019.08.21
  • 디폴트 생성자가 사라지는 경우

    2019.08.21
  • 복사생성자와 치환연산자를 정의할 때 주의할 점

    2019.08.20
  • 네임스페이스

    2019.08.20
  • 연산자를 오버로딩하는 두 가지 방법

    2019.08.19
  • python 가변인자 *, 가변 키워드인자 **

    2019.08.19
복사 생성자를 정의해야 하는 이유

"멤버 대 멤버의 복사가 진행되는 디폴트 복사 생성자가 자동으로 삽입되니까, 굳이 복사 생성자를 직접 정의할 필요는 없지 않을까"라고 생각할 수 있다. #include #include using namespace std; class Person { private: char *name; int age; public: Person(char *myname, int myage) { int len = strlen(myname) + 1; name = new char[len]; strcpy(name, myname); age = myage; } void ShowPersonInfo() const { cout

2019. 8. 21. 01:50
디폴트 생성자가 사라지는 경우

디폴트 생성자는 클래스 객체가 생성될 때, 자동적으로 생기게 된다. 하지만 오버로딩된 다른 생성자를 만들게 되면, 재정의하지 않는 이상 기본 생성자 호출은 끊어진다. #include using namespace std; class Data { private: int dt; public: Data(int dt) : dt(dt) {} void show() { cout

2019. 8. 21. 01:07
복사생성자와 치환연산자를 정의할 때 주의할 점

복사생성자와 치환연산자는 기본 생성자와 소멸자를 포함해서, 클래스에서 기본적으로 정의하는 맴버 함수 중 하나다. 따라서, 정의를 해줄 때 반드시 틀을 지켜야만 한다. 특히 매개변수에 const 선언은 필수다. 해주지 않는다면 빌드가 되지 않을 것이다 tmpclass::tmpclass(const tmpclass &rhs) { .... } tmpclass tmpclass::operator=(const tmpclass &rhs) { .... } [추가] 미리 정의한 코드만 사용한다면?

2019. 8. 20. 21:00
네임스페이스

함수 이름과 매개변수 형식이 같을 때 이를 구분해줄 수 있도록 하는 것이 namespace 이름공간이다 참고로 전역변수도 ::으로 표시할 수 있다. 전역변수이기 때문에, namespace는 명시하지 않아도 된다 #include using namespace std; int n; void set() { ::n = 10; } namespace A { int n; void set() { n = 20; } } namespace B { int n; void set() { n = 30; } } int main(void) { ::set(); A::set(); B::set(); cout

2019. 8. 20. 00:11
연산자를 오버로딩하는 두 가지 방법

1. 멤버함수에 의한 연산자 오버로딩 2. 전역함수에 의한 연산자 오버로딩 총 2가지 방법으로 연산자 오버로딩을 할 수 있는데, 2가지가 있는 이유는 경우에 따라서 한 가지 방법이 제한될 수 있기 때문이다 예를 들어 cout과 어떠한 클래스 객체에 대해서 >> 연산자 오버로딩을 하려고 한다. 순서는 문법에 따라서 cout im = im; } T get_re(void) const { return re; } T get_im(void) const { return im; } friend std::ostream& operator

2019. 8. 19. 21:48
python 가변인자 *, 가변 키워드인자 **

- 개수가 정해지지 않은 변수를 함수의 파라미터로 사용하는 방법 - * asterisk 기호를 사용해서 함수의 파라미터를 표시한다 - 가변인자로 입력된 값은 tuple type으로 사용된다 (참고로 tuple은 () 안에 데이터를 담는다) - 오직 한 개만 사용할 수 있고, 맨 마지막에서 사용되어야 한다 - 보통 가변인자 이름은 args를 약속처럼 사용한다 # args에는 tuple 형태로 (3, 4, 5)가 들어간다 def asterisk_test(a, b, *args): print(args) return a+b+sum(args) print(asterisk_test(1, 2, 3, 4, 5)) asterisk에서의 unpacking에서도 * 가변인자를 사용해 가변 길이의 데이터를 받아올 수 있다 def..

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

티스토리툴바