Programming Study/C++ 썸네일형 리스트형 friend와 static 그리고 const 1. const와 관련해서 아직 못다한 이야기 const 객체와 const 객체의 특성들 다음과 같이 변수를 상수화 하듯이, const int num=10; 다음과 같이 객체도 상수화할 수 있다. const SoSimple sim(20); 그리고 이렇게 객체에 const 선언이 붙게 되면, 이 객체를 대상으로는 const 멤버함수만 호출이 가능하다. 이는 객체의 const 선언이 다음의 의미를 갖기 때문이다. "이 객체의 데이터 변경을 허용하지 않겠다!" 때문에 const 멤버함수의 호출만 허용하는 것이다. 물론 const로 선언되지 않은 함수 중에도 데이터를 변경하지 않는 함수가 있을 수 있다. 하지만 변경시킬 능력이 있는 함수는 아예 호출을 허용하지 않는 것이다. 멤버변수에 저장된 값을 수정하지 않는.. 더보기 복사 생성자(Copy Constructor) 1. '복사 생성자'와의 첫 만남 C++ 스타일의 초기화 우리는 지금까지 다음과 같은 방식으로 변수와 참조자를 선언 및 초기화해 왔다. int num=20; int &ref = num; 하지만 C++에서는 다음의 방식으로 선언 및 초기화가 가능하다. int num(20); int &ref(num); 위의 두 가지 초기화 방식은 결과적으로 동일하다. 즉, C++에서는 위의 두 가지 초기화 방식을 동시에 지원하고 있다. 그렇다면 이야기를 객체의 생성으로 옮겨가 보자. 그리고 이를 위해서 다음과 같이 클래스를 하나 정의하겠다. class SoSimple { private: int num1; int num2; public: SoSimple(int n1, int n2) : num1(n1), num(n2) { } .. 더보기 클래스의 완성 우리는 객체의 생성을 목적으로 클래스를 디자인한다. 그렇다면 좋은 클래스가 되기 위한 조건으로는 어떤 것들이 있을까? 여기에는 '정보은닉'과 '캡슐화'가 있다. 이는 좋은 클래스가 되기 위한 최소한의 조건이다. 1. 정보은닉(Information Hiding) 정보은닉이란 멤버변수를 private로 선언하고, 해당 변수에 접근하는 변수를 별도로 정의해서, 안전한 형태로 멤버 변수의 접근을 유도하는 것이다. const 함수 함수에 const선언이 추가 되 있는 경우에 const는 다음 내용을 선언하는 것이다. "이 함수 내에서는 멤버변수에 저장된 값을 변경하지 않겠다!" 즉 멤버변수에 저장된 값을 변경하지 않겠다는 선언이다. const함수 내에서는 const가 아닌 함수의 호출이 제한된다. const로 선.. 더보기 클래스의 기본 1. C++에서의 구조체 구조체가 주는 이점 - 연관 있는 데이터를 하나로 묶으면, 프로그램의 구현 및 관리가 용이하다. 소프트웨어를 단순히 표현하면 소프트웨어 = 데이터의 표현 + 데이터의 처리 표현해야 하는 데이터는 항상 부류를 형성하기 마련이다. 그리고 이렇게 부류를 형성하는 데이터들은 함께 생성, 이동 및 소멸된다는 특성이 있다. 그래서 구조체는 연관 있는 데이터를 묶을 수 있는 문법적 장치로 데이터의 표현에 큰 도움을 준다. C언어에서 구조체 변수를 선언하는 방법은 다음과 같다. struct Car basicCar; struct Car SimpleCar; 앞에 삽입된 키워드 struct는 이어서 선언되는 자료형이 구조체를 기반으로 정의된 자료형임을 나타낸다. 그리고 키워드 struct를 생략하려.. 더보기 C언어 기반의 C++_2 1. 새로운 자료형 bool bool형은 C언어에는 존재하지 않고, C++에만 존재하는 자료형이다. 그러나 C는 최근 표준에서는 bool을 기본 자료형에 추가하였다. '참'을 의미하는 true와 '거짓'을 의미하는 false C와 C++모두, 정수 0은 '거짓'을 의미하는 숫자로, 그리고 0이 아닌 모든 정수는 '참'을 의미하는 숫자로 정의하고 있다. 따라서 참과 거짓의 표현을 위해서 다음과 같이 상수를 정의하는 것이 보통이다. #define TRUE 1 #define FALSE 0 이러한 참과 거짓의 표현방법은 C++에서도 여전히 사용된다. 그러나 C++에서는(그리고 새로운 C 표준에서는) 참과 거짓의 표현을 위한 키워드 true와 false를 정의하고 있기 때문에, 굳이 상수를 이용해서 참과 거짓을 .. 더보기 이전 1 2 다음