따라배우는 C++ (홍정모)https://www.youtube.com/watch?v=KJGxrd2Ac24&list=PLNfg4W25Tapw5Yx4yuExHNybBIUk68aNz 1. 9-1 산술연산자 오버로딩(overloading) 하기-const를 뒤에 붙이면 같은 이름도 오버로딩 된다는 것을 까먹어서 조금 헤멤- 핵신기,, c++로 파이썬 만들수도 있을듯Cents operator + (const Cents &c1, const Cents &c2){return Cents(c1.getCents() + c2.getCents());}cout 연산자 말고 < 연산자를 오버로딩 해야함 (인터레스팅..)
1. 8-12 친구 함수와 클래스 friend- 연산자 오버로딩에서 가장 많이 사용함- 전방 선언(foward declaration) class B;class A 내부에서 class B에관한 내용이 있는데 B가 늦게 선언되어 있으면 A앞에 전방선언을 해준다.2. 8-13 익명개체 (anonymous)- lvalue, rvalue?== lvalue : 단일 식을 넘어 지속되는 개체를 참조. 모든변수 rvalue : rvalue를 사용하는 식 외에서는 유지되지 않는 임시 값. https://msdn.microsoft.com/ko-kr/library/f90831hc.aspx- class A 의 메서드 print()가 있다고 했을 때 A(1).print()처럼 바로 사용가능. 이때 A는 rvalue와 비슷== ..
1.8-8 클래스와 헤더파일-inline 함수?-여러파일 함께 컴파일 g++ 8-8.cc Calc.cc 2. 8-9 클래스와 const- const로 인스턴스 생성시 member function이 const라고 생성해줘야 쓸 수 있음.ex) int getValue() const- const 적극 활용 권장- defualt copy constructorSomething(const Something* st_in){m_value = st_in.m_value;}- 클래스를 argument로 보낼때는 const Something &st 형태로 보내면 좋다.- const가 있냐없냐로 오버로딩도 가능3. 8-10 정적 멤버 변수- const 가 아닌 static 멤버 변수는 initialize가 불가능 하다.- st..
#ROS를 사용하며 항상 그냥 하라는대로 CMakeList.txt 파일을 변경해 왔었는데 이번기회에 약간 알아보고 실습도 해보니 모르고 있을 때와 다르게 감이 확 왔다. #cmake Makefile을 보다 쉽고 편리하게 작성할 수 있게 해주는 것이므로 Makefile에 대해 알아볼 필요가 있었다. https://www.tuwlab.com/27193 #https://www.tuwlab.com/ece/27234 cmake를 사용하면 좋은 점은 소스코드와 실행파일에 관심을 집중하고 중간에나오는 부산물들에대해서 신경을 덜 쓸수 있게 된다고 한다. 배운 구문 몇가지add_executable() : 생성할 바이너리 add_library() : 라이브러리 추가target_link_libraries() : 바이너리에 ..
#g++ 컴파일러의 기본적인 옵션들을 정리해보자.CMakeList.txt를 작성할 때도 유용하게 쓸 지식인 것 같다. g++ --help 명령을 통해 알아본 옵션들이다. 옵션:-pass-exit-codes : 단락의 가장 높은 에러코드에서 탈출--help : 정보 표시--target-help : 특정 코맨드라인 옵션의 타겟 출력--version : 버전 정보 출력-dumpspecs : 모든 내장 스펙 문장 출력-dumpversion : 컴파일러의 버전 출력-dumpmachine : 컴파일러의 타겟 프로세스 출력-print-search-dirs : 컴파일러의 검색 경로의 디렉토리들을 출력-print-libgcc-file-name : 컴파일러의 동료 라이브러리 이름 출력-print -file-name= : ..
#위임 생성자(delegating constructor)는 배울 때 미국에서 swift를 하며 매일 같이 생각했던 delegate와 같았다. constructor 에서 같은 클래스 내의 다른 constructor를 쓸 수 있는 기능을 delegating cnostructor라고 한다. ex) class Student{private:int id;int score; public://일반적인 constructorStudent( const int& id_input, const int& score_input) : id(id_input), score(score_input) {} //delegating constructor를 사용Student(const int& id_input){Student(id_input, 10..
# Gazebo 를 이용한 velodine Lidar 모델링 첫 번째 튜토리얼 http://gazebosim.org/tutorials?cat=guided_i&tut=guided_i1 # world 파일을 실행했는데 이상하게 아무 것도 뜨지 않아서 한참 찾아보았다. 문제는 부분을 내부에 뒀어야했는데 내부, 밖에다 두게되어 이런 현상이 있었다. 조인트를 삽입하고 센서를 모델링하는 부분까지 실습해 보았다. 아직 inertia나 pose가 왜그런식으로 정해지는지 감이 잘 오지 않는다.