C++

C++

C++ 정리1

C++ 정리1 학교 시험 공부하면서 보완할 점을 정리했던 것들인데, 나중에 시간을 들여서 보기좋게 다듬을 예정이다. C++ 창시자 : 비야네 스트롭스트룹 C언어의 문법을 계승하여 호환이됨. 객체 지향 개념 도입 : 캡슐화, 상속, 다형성 C++에서 추가된 내용이자 객체 지향의 특징들 함수중복, 디폴트 매개변수, 참조와 참조 변수, 참조에의한 호출, new/delete연산자 연산자 재정의, 제네릭함수 클래스 등.... *제네릭 함수 : 동일한 프로그램 코드에 다양한 데이터 타입을 적용할 수 있게 일반화 시킴. (! 인라인 함수는 객체 지향 특징이 아님) C++은 객체지향언어 class 안, 밖 모두에 변수, 함수 선언 가능 C++은 함수 중복(오버로딩)과 다중상속(C++만 가능) 가능 캡슐화 : 데이터를 ..

C++

C++ 05 : 접근 지정자, 인라인 함수

C++ 05 : 접근 지정자, 인라인 함수 접근 지정자 클래스 내에 선언되는 private, public, protected를 가리킴. 주로 멤버 변수에 대한 접근을 어느 범위까지 허용할 것인지를 지정할 수 있다. private (디폴트 값) : 동일한 클래스 내부에서만 접근을 허용 public : 클래스 내/외부 모두에서 접근을 허용 protected : 클래스 내부 및 상속받은 자식 클래스에 대해서도 접근 허용 이런 방식으로 다른 클래스나 객체에서 함부로 접근할 수 없도록 보호하는 것을 캡슐화라고 한다. #include using namespace std; class Abc { private: int a; void f(); Abc(); // 생성자 public: int b; Abc(int x); vo..

C++

C++ 04 : 클래스 사용법, this의 활용, 생성자와 소멸자, 멤버 변수 초기화 방법

C++ 04 : 클래스 사용법, this의 활용, 생성자와 소멸자, 멤버 변수 초기화 방법 클래스와 객체 붕어빵 틀을 이용해서 붕어빵을 대량 생산함 붕어빵 틀 -> 클래스 붕어빵 -> 객체 클래스는 객체 지향 프로그래밍(OOP)에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 틀과 같음. 클래스 내에서 상태 값 역할을 하는 멤버 변수와, 동작을 제어하는 메서드(함수)의 역할로 객체를 정의할 수 있다. 이렇게 만들어진 객체들의 조합으로 프로그래밍하는 방식을 객체 지향 프로그래밍이라고 한다. 클래스는 기존의 C에서 쓰이는 구조체에서 발전된 것으로, 접근 제어 지시자의 사용과 함수를 포함할 수 있는 특징이 있다. class 클래스 이름{ 접근 제어 지시자: 멤버 변수: 멤버 함수: }; #include..

C++

C++ 03 : 문자열 연산과 문자열 비교

C++ 03 : 문자열 연산과 문자열 비교 1. 문자열 연산 자바에서는 숫자 + 문자열 연산이 가능하나, C++에서는 문자(열)끼리의 + 연산만 가능하다. #include using namespace std; int main() { string s1("abc"); // string 헤더파일 대부분 내용이 iosteam에 포함되므로 string헤더파일을 굳이 선언하지 않아도 됨 string s2("def"); cout

C++

C++ 02 : 문자열 입력받기, cin, getline()

C++ 02 : 문자열 입력받기, cin, getline() C++은 C와의 호환성으로 인해 문자열을 C-스트링 방식뿐만 아니라 String 클래스를 이용하는 방식도 이용할 수 있다. 헤더 파일을 사용하면 C언어에서 사용하는 strcmp(), strlen(), strcpy()와 같은 함수를 사용할 수 있다. C-스트링 방식 : \0으로 끝나는 문자 배열 char word[5] = {'G','r','a','p','e'}; 이러한 형태는 문자열이 아니라 단순 문자 배열이다. 문자열로 취급되기 위해서는 마지막에 \0(널문자)를 포함해야 한다. char word[6] = {'G','r','a','p','e','\0'}; #include using namespace std; int main() { char wor..

C++

C++ 01 : cout, cin 표준 입출력, std::와 namespace

C++ 01 : cout, cin 표준 입출력, std::와 namespace #include // 라이브러리 가져올 때는 , 직접 만든 라이브러리 가져올 때는 ".h" int main() { // C와 동일하게 main()만 실행됨. 프로젝트 하나에 main함수는 하나만 존재해야 함. std::cout

C++

C++의 객체 지향 특성과 장단점

C++의 객체 지향 특성과 장단점 1. 캡슐화 데이터를 캡슐로 싸서 외부의 접근으로부터 보호함(class 키워드를 사용해서 표현) 클래스 : 객체를 만드는 틀 객체 : 클래스라는 틀에서 생긴 실체 붕어빵 틀이 클래스라면, 붕어빵은 객체와 같음 2. 상속성 객체 지향 상속 : 자식이 부모의 유전자를 물려받는 것과 유사 C++에서는 객체가 자식 클래스의 멤버와 부모 클래스에 선언된 모양 그대로 멤버들을 가지고 생성된다. 3. 다형성 하나의 기능이 경우에 따라 다르게 보이거나 다르게 작동하는 현상 연산자 중복, 함수 중복, 함수 재정의(overriding) 연산자 중복 5+2 -> 7 "가을" + "바람" -> "가을바람" 함수 중복 void add(int a, int b){...} void add(int a..

C++

C++의 특징 정리

C++의 특징 정리 창시자 비아르네 스트로우스트루프(Bjarne Stroustrup) 특징 1. C언어와의 호환성, C언어의 문법 체계를 계승. 단점 : 캡슐화의 원칙이 무너짐. C++에서 전역 변수와 전역 함수를 사용할 수밖에 없게 됨. 2. 객체 지향 개념 도입 캡슐화, 상속, 다형성 소프트웨어의 재사용을 통해 생산성 향상. 복잡하고 큰 규모의 소프트웨어 작성, 관리, 유지보수에 용이 C언어의 +알파 버전이라고 할 수 있음 3. 추가된 기능들 1) 함수 중복(오버라이딩) 매개 변수의 개수나 타입이 다른 동일한 이름의 함수들 선언 가능 2) 디폴트 매개 변수 매개 변수에 디폴트 값이 전달되도록 함수 선언 3) 참조와 참조 변수 하나의 변수에 별명을 사용하는 참조 변수 도입 4) 참조에 의한 호출 함수 ..

lazarus0320
'C++' 카테고리의 글 목록