TIL - 2022.09.19

안성은·2022년 9월 19일
0

TIL

목록 보기
4/6
  1. 구조체와 클래스 비교

    • 구조체
    include <stdio.h>
    
    /*
    	1. 구조체는 상속을 지원하지 않는다.
        2. 구조체에는 함수 포인터로 정의만 가능.
    */
    typedef struct a{
    	int size;
        char* color;
        
        int *add(int, int);
    } Car;
    
    Car* initCar() {
        Car* car;
        car = (car*)malloc(sizeof(car*));
        car.size = 50;
        car.color = "red";
    	return car;
    }
    
    int add(int a, int b) {
    	return a + b;
    }
    • 클래스
    class Car {
    	int size;
        String color;
        
        /*
        	생성자 함수
            1. void* 사용
            2. 상속이 안된다.
            3. 인스턴스가 생성될 때 멤버변수를 초기화 한다.
            4. return 값이 없다.
        */
        Car(int size, string color) {
        	this.size  = size;
            this.color = color;
        }
        
        /*
        	java에서 add라는 함수는 new로 인스턴스를 생성하고 
            add라는 함수를 참조하는 포인터를 생성하는 것이라고 생각하면 된다.
            => 그래서 인스턴스를 생성해도 멤버변수는 새롭게 메모리를 할당받아 
            기존의 함수를 참조하는 참조 변수를 생성하는 것이다.
        */
        int add(int a, int b){
        	return a + b;
        }
    }
  2. Design Pattern

0개의 댓글