입출력을 위한 기본 헤더파일printf를 대신하는 데이터 입력scanf를 대신하는 데이터 입력using namespace A;using namespace B; int main(){ int Num = 300; std::cout << "main Num : "
C언어에서는 동일한 이름의 함수가 정의되는 것을 허용하지 않는다.하지만 C++에서는 함수호출 시 전달되는 인자를 통해서 호출하고자 하는 함수의 구분이 가능하기 때문에 C++에서는 동일한 이름의 함수정의를 허용할 수 있다.이러한 형태의 함수정의를 함수 오버로딩이라 한다.
인라인 함수(inline) 인라인 함수(inline)를 의역하면 '프로그램 코드라인 안으로 들어가 버린 함수'라는 뜻 매크로 함수 C언어에서는 #define 선행처리 지시문에 인수로 함수의 정의를 전달함으로써, 함수처럼 동작하는 매크로를 만들 수 있습니다. 이러한 매
이름공간은 말 그대로 특정 영역에 이름을 붙여주기 위한 문법적 요소이다. using 사용이름공간의 별칭 지정AAA::BBB::CCC와 같은 이름에 별칭을 ABC라고 지정해 줌
상수화 시켜줄 땐 선언과 동시에 초기화 필수!업로드중..const int : 데이터의 상수화int const : 포인터변수의 상수화
int, const int, char arr : 지역변수static, func() : 전역변수 / 함수
함수의 호출방식 Call-By-Value 값을 인자로 전달하는 함수의 호출방식 Call-By-Reference 주소 값을 인자로 전달하는 함수의 호출방식 Call-By-Value 이 경우 메모리에 접근하는 방식이 아니라 함수 호출해도 값이 변하지 않음 Cal
사용자 정의 함수구조체란 하나 이상의 변수를 묶어서 새로운 자료형을 정의하는 도구이다.데이터를 묶음으로써 프로그램상에서 데이터의 표현과 관리에 용이하다.동일한 자료형을 묶은것은 배열이라 하고 다른 자료형을 묶은것을 구조체라 한다.구조체의 끝에는 세미콜론 반드시!!
자신이 참조하는 변수를 대신할 수 있는 또 하나의 이름할당된 하나의 메모리 공간에 둘 이상의 이름을 부여할 수 있음참조자도 변수로 봐도 무방참조자의 수에는 제한이 없으며, 참조자를 대상으로도 참조자를 선언할 수 있다.배열의 요소는 변수로 간주되어 참조자의 선언이 가능(
ㅇㅁㄴ
클래스의 모든 멤버 변수가 모두 public인 경우 초기화 목록(initialization list) 또는 유니폼 초기화(uniform initialization)를 사용해서 초기화를 직접 초기화할 수 있다.클래스의 이름과 함수의 이름이 동일하다반환형이 선언되어 있지
"이 함수 내에서는 멤버변수에 저장된 값을 변경하지 않겠다!"매개변수도 아니고, 지역변수도 아닌, 멤버변수에 저장된 값을 변경하지 않겠다는 선언const함수 내에서는 const가 아닌 함수의 호출이 제한된다이 경우 Show()라는 const로 정의된 함수에서 GetNu
정보은닉은 객체지향 언어적 요소를 활용하여 객체에 대한 구체적인 정보를 노출시키지 않도록 하는 기법. 이때, 정보은닉 == 캡슐화가 아님정보은닉 기법중 하나가 캡슐화이다.사용자가 굳이 알 필요가 없는 불필요한 정보는 숨김으로써 사용자는 최소한의 정보만으로 프로그램을 쉽
객체생성시 반드시 호출되는 것이 생성자라면, 객체소멸시 반드시 호출되는 것이 소멸자이다클래스의 이름 앞에 '~'가 붙은 형태의 이름을 갖는다반환형이 선언되어 있지 않으며, 실제로 반환하지 않는다매개변수는 void형으로 선언되어야 하기 때문에 오버로딩도, 디폴트 값 설정
스택 영역은 함수의 매개변수와 지역변수가 할당되는 영역으로 함수 호출 시 스택에 할당되며 함수 종료 시 자동으로 소멸한다'new' 키워드를 사용하여 동적으로 힙 영역에 메모리를 할당한다.따라서 'delete'하기 전까지 heap에 존재하게 된다.그래서 동적메모리 해제를
업로드중..
클래스의 friend 선언을 하면 직접 private 멤버에 접근이 가능하다.friend 선언은 클래스 내 아무곳에서나 선언friend 선언은 정보은닉을 무너뜨리는 문법이기도 하기 때문에 가급적 사용하지 말자Girl class에서 Boy class 접근 허용
전역변수에서 선언된 static은 선언된 파일 내에서만 참조를 허용하겠다는 의미함수 내에 선언된 static은(지역변수에 붙은 static) 한번만 초기화되고, 지역변수와 달리 함수를 빠져나가도 소멸되지 않는다Static_Counter()에서 선언된 static int
"UnivStudent" 클래스가 "Person" 클래스를 상속한다 UnivStudent 클래스가 Person 클래스를 상속하게 되면, UnivStudent 클래스는 Person 클래스가 지니고 있는 모든 멤버를 물려받는다.즉, UnivStudent 객체에는 Un
포인터인데 배열을 가리키는 포인터배열인데 포인터로 이루어진 배열
함수의 오버라이딩은 포인터 변수의 자료형에 따라서 호출되는 함수의 종류가 달라지는 문제가 있음사용방법자식 클래스의 void MyFunc() 즉 오버라이딩 된 함수는 모두 가상함수가 된다규칙1\. 클래스의 public 영역에 선언2\. 가상함수는 static일 수 없으며
객체의 주소 값을 저장하는 포인터 변수위의 문장이 실행되면, 포인터 ptr은 Person 객체를 가리킴Person형 포인터는 Person 객체뿐만 아니라, Person을 상속하는 유도클래스의 객체도 가리킬 수 있다
함수 오버라이딩 설명 추가하기!
복사생성자 얕은복사와 깊은복사로 나눌 수 있다
템플릿은 "모형자"라고 생각하면 된다. 모형자는 모형을 그릴 때 사용되는데 빨간색 펜으로 그리면 빨간색 모형, 파란색으로 그리면 파란색 모형이 되는데 템플릿도 이와 유사하다... '틀'이라고 이해함수를 만드는 도구함수의 자료형이 결정되지 않았음함수의 기능template
디버깅 창콘솔 창
예외처리 try : 예외를 발견한다 catch : 예외를 잡는다 throw : 예외를 던진다 메인 함수 밖에서 예외가 발생할 때 지역함수 안에서 예외처리
ㄱㄷㅈㄷㄴㅇㄹ
표준 string 클래스 C++ 표준 라이브러리에는 string이라는 클래스가 정의되어 있다. 문자열의 처리를 목적으로 정의된 클래스임 사용시 헤더파일 사용 ! 원래는 char형의 배열 또는 char형의 포인터를 사용하여 문자열을 사용했음 !
자동으로 메모리가 할당되는 배열이라고 생각하면 됨(자료구조 스택과 비슷)template를 사용하기 때문에 데이터 타입은 마음대로 넣을 수 있다맨 뒤에서 삭제/삽입이 이뤄짐중간에 값 삽입/삭제도 가능,,,하지만 배열기반이기 때문에 비효율적 헤더파일 사용using name
메인이 포함된 cpp파일헤더파일기능구현 cpp파일
절차지향 언어로 순차적인 처리가 중요함.프로그램 전체가 유기적으로 연결됨.정해진 순서에 따라 실행되기 때문에 실행 흐름을 이해하기 쉽다.오버로딩을 지원하지 않음namespace 개념 사용클래스의 개념을 사용객체지향 언어로 구조화된 프로그램을 짤 수 있다.같은 목적이나
ios_base::sync_with_stdio(false);cin.tie(NULL); C++로 알고리즘을 실행할 때 실행 속도를 높이기 위해 위와 같은 구문을 작성한다.ios_base::sync_with_stdio() 구문은 c의 stdio와 cpp의 iostream을
C++에선 Parameter Pack라고 한다.수가 정해지지 않은 N개의 인자를 사용할 수 있는 기능이다.위의 템플릿 클래스 tuple은 어떠한 타입이든 몇개든 상관없이 인자 생성이 가능하다.아래와 같은 인스턴스도 가능함만약 최소한 하나의 인자는 받아야 한다고 강제하고
뮤텍스는 여러 스레드의 공유자원을 보호하기 위해 사용되는 클래스이다. 는 상호배타적이며, 비재귀적인 소유권을 가진다. 스레드에서 또는 을 호출하면