본문 바로가기

C++

[중요] C++ 0.07 - new, delete C vs C++ // C int *p = (int *)malloc(sizeof(int) * N); for (int i = 0; i < N; i++) p[i] = i; free(p); // C++ int *p = new int[N]; // or int &p = new int[N]; for (int i = 0; i < N; i++) p[i] = i; delete[] p; N : 할당할 배열 개수. Example int *p = new int; // pi points to unintialized int int *pi = new int(7); // which pi points has value 7 string *ps = new string("hello") // ps points "hello" int *pia =.. 더보기
[중요] C++ 0.06 - Reference Operator & Reference Operator 란? Refercece Operator는 C의 Pointer 와 동일한 역할을 하는 것으로 A Reference allows to declare an alias to another variable. C++ 에서는 함수가 value를 리턴할 때, return 할 value를 stack에 카피하는데 calling function은 stack에 저장된 변수를 읽어서 그걸 다시 변수에 copy 한다. 하지만 Reference Operator는 함수를 부를 때 스택으로 Parameter를 Copy 하는 비용을 줄여준다!! 예제로 살펴보도록 하자! Code ( Pointer vs Reference ) // using pointer void swap(int *a, int *b) { .. 더보기
C++ 0.05 - Default Function Arguments void foo(int i, int j=7); // right void goo(int i=3, int j); // wrong void hoo(int i, int j=3, int k=7); // right void moo(int i=1, int j=2, int k=3); // right void noo(int i=2, int j, int k=3); // wrong Defalut Arguments 의 경우 반드시 왼쪽에서 오른쪽으로 Skip 없이 사용되어야 한다. Code 5번을 보면 확실하게 알 수 있을 것이다. 더보기
C++ 0.04 - Inline functions Code #define sq(x) ((x)*(x)) #define max(x, y) (y < x ? x : y) Inline Function 은 Define을 통해서 쉽게 사용할 수 있고, 유용하게 사용가능하다!! 더보기
C++ 0.03 - Input & Output Using Input / Output #include using namespace std; // we don't need std:: anymore int main() { int i, j; // Two integers are defined cout > i >> j; // Read i and j from the keyboard cout cin 과 std::getline() 을 함께 사용하면 cin 의 경우 newLine charactor를 입력 받지 못하기 때문에 cin 을 연속적으로 사용할 경우 cin 을 한번 더 사용해서 newLine charactor를 없애줘야 한다. 또는 std::getline() 을 사용할 수 있다. 고로, 그냥 std::getline() 을 사용하는게 사용 좋다! 더보기
C++ 0.02 - Namespaces 코드 #include using namespace std; namespace one { int var = 5; } namespace two { int var = 3; } int main(int argc, char **argv} { cout 더보기
C++ 0.01 - int 와 Float 구분하기!! Int , Float 의 자료형에 따른 차이! 필자는 항상 int 와 Float가 헷갈렸다. 특히 int 와 Float가 섞인 연산이 굉장히 헷갈렸다. Float 형식으로 출력을 하고 싶은데 계속 int 형태로 출력이 되어 골머리를 앓았던 적이 한두번이 아니다. 그래서 이번에 확실히 알고, 이를 정리해놓기 위해서 블로그에 해당 내용을 남기기로 했다. Code #include using namespaces std; int main(){ float bmi; // weight * (height * height) 여기서 height은 m 단위이다. int weight = 50; int height = 165; bmi = weight / ((float)(height / 100) * (height / 100)); .. 더보기