-
Doxygen 설치!ETC 2018. 9. 24. 09:44
Doxygen을 사용해보자! 리눅스에서 사용해볼 것인데 설치방법은 다음과 같다. 123456789git clone https://github.com/doxygen/doxygen.gitcd doxygen mkdir buildcd buildcmake -G "Unix Makefiles" ..makemake install 하지만 다음과 같이 만약 cmake -G "Unix Makefiles" .. 를 하였는데 에러가 발생한다면 12apt-get install flexapt-get install bison 위의 명령어로 flex와 Bison을 설치하면 정상적으로 Make 할 수 있게 된다. 사용의 편의성을 위하여 GUI도 설치해주자!1apt-get install doxygen doxygen-gui 사용법은 간단하..
-
C++ auto 키워드 사용하기Coding/Tip !! 2018. 9. 19. 14:59
auto 키워드선언 지정자인 auto 키워드는 초기화시에 초기화 값에 맞춰 자동으로 자료형을 판단하는 기능을 가진다. 해당 키워드를 사용할 때의 주의점은 선언만하고 초기화를 하지않으면 사용이 불가능하다.-> 이유는 당연히 초기화된 값을 기준으로 자료형을 선택하기 때문이다. 1234567891011#include int main(){ auto a = true; auto b = 1; auto c = 'c'; auto d = "hello world"; auto e; (x) return 0;} 이건 그냥 Tip인데 출력 시에 자료형을 나타내고 싶을경우 typeid(변수이름).name( ) 을 해주면 자료형이 출력된다. auto 사용 예시123456789101112131415161718192021222324252..
-
c++ 정적 배열사용 arrayCoding/Tip !! 2018. 9. 19. 14:18
보통 우리는 배열을 사용 할 때 123456#include int main(){ int arr[5] = { 1, 2, 3, 4, 5};} d처럼 선언한다. 하지만 좀 더 쉽고 다양하게 사용할 수 있도록 선언하는 방법이 있다.1234567#include #include int main(){ std::array hello_Arr = { 1, 2, 3, 4, 5};cout 내부에 배열의 크기를 나타내는 숫자가 있어야한다는 점이다.-> 보통 배열은 int arr[] ={ 1,2,3,4,5 } 가 가능하지만 위의 표현은 그런것이 불가능하다는 점이다. 이런 식으로 선언할 경우 다양한 기능을 이용할 수 있는데 대표적으로 배열에 대한 값을 sort할 수 있다.1234567891011#include #include #i..
-
함수의 인자 사용 시, 레퍼런스 이용하기!Coding/Tip !! 2018. 9. 19. 14:03
함수의 인자 사용 시, 레퍼런스 이용하기! 함수의 인자로 값을 넣어주면 해당 함수를 사용할 때 그 인자값들이 복사가 된다. 예를 들어 func(int a[1000]) {} 이라는 함수가 있다면 해당 함수가 호출 될 경우 1000이라는 크기를 가진 배열이 복사가 된다. 1000이지만 이것보다 더 크기가 큰 인자인 경우 시간이 더 걸릴 수 밖에 없다. 이 때 해결법은 포인터를 사용해도 좋지만 래퍼런스 &를 쓰면 참 편하다~ 만약 해당 함수에서 인자값이 변하길 원치않다면 const를 앞에 붙여서 수정을 막을 수도 있다.
-
foo 함수Coding/Tip !! 2018. 9. 19. 13:32
void foo(){} 와 void foo(void) {}는 언어마다 다르게 해석된다. c에서 foo 함수 void foo() : 받을 인자의 타입과 수가 정해지지 않음void foo(void) : 함수 foo는 인자를 받지 않음 c++에서 foo 함수void foo() : foo는 아무런 인자를 받지 않는다.void foo(void) : foo는 아무런 인자를 받지 않는다. https://stackoverflow.com/questions/2750316/this-vs-this-in-c
-
포인터와 역참조Coding/Tip !! 2018. 9. 19. 05:12
포인터 * * 란 역참조(Dereference)연산자라는 의미이다. -> 포인터 변수에는 메모리 주소가 저장되는데 이 메모리주소의 값을 가져올때 사용하는 것이 바로 역참조 연산자(*)이다. 1234567int *pointer; // 포인터 변수 선언 int test =1; // test에 1을 저장 pointer = &test; // test의 메모리 주소를 포인터 변수에 저장한다는 의미 *pointer = 7; // 역참조 연산자를 의미함으로 test의 메모리 주소에 접근하여 7을 저장함 이 경우cout
-
friend 키워드 사용Coding/Tip !! 2018. 9. 19. 01:32
friend 지정되어있는 해당 함수 또는 클라스에 대해 자신의 private이나 protected 멤버를 public 권한으로 접근하게 해주는 기능을 하는 키워드이다. 사용법friend class 클래스이름; friend 함수이름; friend 클래스이름::함수이름; -> 이를 사용하면 객체 사용이 편리해지나 캡슐화를 망가뜨리게되는 단점이 있다.-> 그렇기 때문에 너무 많이 사용하는 것은 권장하지 않는다. 아래와 같은 코드를 예시로 들겠다. main.cpp1234567891011121314#include #include "test.h" using namespace std; int main(){ testa a; testb b; b.func(a); return 0;} test.h1234567891011121..
-
::연산자와 . 연산자Coding/Tip !! 2018. 9. 19. 01:08
:: 연산자는 클래스에 사용되고. 연산자는 객체에 사용된다. Aclass aa;가 있고 해당 클래스인 Aclass내에 Func 이 정의되어있다면 .연산자는 aa.Func() 객체가 함수를 호출하는데 사용될 수 있으며 ::연산자는 void Aclass::Func()으로 클래스를 정의할 떄 사용되거나 static으로 구현된 함수를 클래스에서 호출하는데 사용된다. 1234567891011121314151617181920#include using namespace std; class Aclass {public: Aclass(){} static void Func(); private:}; void Aclass::Func(){ cout