왕초보 학생
283
2021-09-23 16:06:47 작성 2021-09-23 16:10:00 수정됨
2
193

자바는 C++과 이런 게 다른가요?


안녕하세요

자바 공부하다가 궁금한 점이 생겼습니다



public class EnumEx {
	public static void main(String[] args) {
		
		Fruit fruit = Fruit.Cherry;
		
	}
}
enum Fruit
{
	Apple, Banana, Cherry
}


C++ 이었으면

enum Fruit { } 이 소스코드가요

enum Fruit
{
	Apple, Banana, Cherry
}


main메서드보다 위에 있어야

main 안에서


Fruit fruit = Fruit.Cherry;


이 선언이 가능했을텐데요


자바랑 자바스크립트는 이런 순서가 상관없나요? 

C랑 C++만 순서를 신경써야 하나요?

0
  • 답변 2

  • 안전라이딩
    1k
    2021-09-23 17:06:49 작성 2021-09-23 17:10:49 수정됨
    #include <iostream>
    #include "my_enums.h"
    
    int main ( void ) {
        std::cout << "          " << std::endl;
    }

    이런 소스 코드가 있다고 치면

    C++ 의 경우 include 란 건 해당 헤더 코드가 치환되서

    컴파일러가 매우 긴 하나의 뭉탱이 코드를 만드신다고 보시면 됩니다.

    이래서 #ifndef __MY_HEADER 어쩌구 하는 걸 합니다.

    이 코드 뭉탱이를 위에서 부터 쭉 읽어 내리는데 언급되지 않은 놈이 나오면 에러가 나고요..

    그래서 전방 선언 같은걸 해주게 됩니다.

    음.. 설명이 별로네요...;


    Single Compilation Unit (or Translation Unit) // 번역 단위

    Difference between Declaration and Definition // 선언과 정의 차이

    Forward Declaration // 전방 선언

    Linking // 링킹

    Scope // Scope - cppreference.com

    이런거로 검색해보시면 도움이 되실거 같습니다.

  • 왕초보 학생
    283
    2021-09-23 19:50:17

    가르쳐주셔서 고맙습니당 ㅎㅎ

  • 로그인을 하시면 답변을 등록할 수 있습니다.