ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C++ 기초 1
    C++ 2020. 12. 24. 16:00

    JAVA만 하던 나에게 C++ 거의 동일하면서도 다른것들이 있어 정리해보려고한다. 

    여러가지가 있겠지만 내가 헷갈리는 것들만 작성하도록 하겠다. 

    C++ 관련 정보는 (www.tcpschool.com/)여기서 얻었다.

     

    1. 메모리의 동적 할당(dynamic allocation)

     

    JAVA C++
    MyClass a = new MyClass(); int* a = new int;
    delete a;

    2. 구조체(struct)

    java에 없는 개념인데 kotlin에서 data class와 비슷하게 사용되는 느낌이다. 

    구조체를 함수의 인자와 반환 값으로 사용 할 수 있다. 

    int CalcProperty(Prop* money)
    {
        money->savings = 100; // 호출된 함수에서 원본 구조체의 데이터를 변경
        return (money->savings - money->loan);
    }  
    
    int CalcProperty(const Prop* money) // const 키워드를 사용하여 구조체의 데이터를 직접 수정하는 것을 방지함.
    {
        //money->savings = 100; // 호출된 함수에서 원본 구조체의 데이터를 변경
        return (money->savings - money->loan);
    }

    3. 인수 전달 방법

    java는 primitive type은 Call By Value, reference type은 Call by Reference 라고 한다. 

    C++은 이걸 정의? 해줄 수 있다. 

    Call By Value Call by Reference

    int main(void)
    {
        int var = 10;
        Local(var);
        cout <<var;
        return 0;
    }
    void Local(int num)
    {
        num += 10;
    }

    int main(void)
    {
        int var = 10;
        Local(var);
        cout <<var;
        return 0;
    }
    void
     Local(int& num)
    {
        num += 10;
    }

    출력 10; -> 원본 값이 변경 되지 않음

    출력 20; -> 원본 값이 변경이 됨

    4. 함수 포인터

    먼가 자바에는 없고 코틀린에서는 있는 개념 같다. 

    typedef double (*Arith)(double, double); // typedef 키워드를 이용한 새로운 이름 선언
    //double Calculator(double , double, Arith); // typedef
    
    int main(void)
    {
      double (*calc)(double, double) = NULL; // 함수 포인터 선언
      //Arith calc = NULL; // 함수 포인터 선언 typedef
      
      double num1 = 3, num2 = 4, result = 0;
      calc = Add;
      result = Calculator(num1, num2, calc);
     }
     
    double Add(double num1, double num2) { return num1 + num2; }
    double Calculator(double num1, double num2, double (*func)(double, double))
    { return func(num1, num2); }
    //double Calculator(double num1, double num2, Arith func) { return func(num1, num2); }// typedef

    5. 디폴트 인수 

    함수 인자의 default 값을 설정 할 수 있다. 

    void Display(int x, int y, char ch = 'a', int z = 4); // 가능함.

     

    6. 함수 시그니처(function signature)

    이거 코틀린에도 있는거 같은데 아래의 경우 함수 시그니처가 2개의 double인자를 가지고 double return의 시그니처를 가지고 있다. 

     

     double (*calc)(double, double)

    7. 변수 종류 

    아래와 같다고 한다. 

    출처 : www.tcpschool.com/

     

    코딩교육 티씨피스쿨

    4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

    tcpschool.com

     

    'C++' 카테고리의 다른 글

    C++ new  (0) 2021.01.15
    C++ 기초 2  (0) 2020.12.28
Designed by Tistory.