본문 바로가기

[C,C++]

(5)
[C,C++ 개념정리] Member initializer list 생성자 부분과 겹쳐 포스팅할 걸 그랬나봐;; constructor initializer를 사용할 때 다음과 같이 :콜론으로 initialize를 list형태로 시켜줄 수도 있다. 단순한 구조는 다음과 같다. class Something { private: int m_i; double m_d; char m_c; public: Something() : m_i(1), m_d(3.14), m_c('a') void func() { } }; - 코드 - /* [8.4강 생성자 맴머 이니셜라이져 리스트 (Member initializer list) ] */ #include using namespace std; class B { private: int m_b; public: B(const int& m_b_in) : m..
[C,C++ 개념정리] Constructors(생성자) C++은 class내에 default-constructor가 존재한다. 새롭게 constructor를 정의하였다면 그 정의에 맞게 instance들을 생성하여야 한다. 신기하게도 constructor를 private하게 선언하는 경우도 있다고 한다. 추후에 포스팅하기로 한다. - 코드 - /* [8.3강 생성자(Constructors)] 컴파일러 입장에서 생성자가 없다면, default 생성자를 만들어서 넣어준다. 생성자 : instance를 직접 생성한다기보다, 인스턴스를 선언할때 호출되는 '함수'개념에 더 가깝다. */ #include using namespace std; class Fraction { private: int m_nume..
[C,C++ 개념정리] encapsulation, access specifiers & functions class 멤버변수에 대한 default - access specifier는 private이다. 인스턴스의 멤버변수에 대한 접근을 유의해서 보자. 당연한 얘기지만, 같은 클래스 내의 함수가, 동일한 클래스 내의 변수로의 접근은 접근지정자와 관계없이 접근이 가능하다. encapsulation의 철학이다. - 코드 - /* [8.2강 캡슐화(encapsulation), 접근지정자(access specifiers), 접근함수(access functions)] 최근에는 연관관계를 잘 이해하고, 이를 깔끔하게 유지하는 사람들을 두고 프로그래밍을 잘한다고 한다. encapsulation에서는 내부 변수값들을 default인 private으로 선언하고, public 함수로 접근하게 만든다. const int& 의 의..
[C,C++ 개념정리] 객체지향의 시작 객체지향언어는 굉장히 익숙한 개념이지만, 이왕 C++을 정리하기로 했으니 기본적인 내용도 포스팅하기로 했다. 방법 1~5로 이르기까지 객체지향언어를 왜 사용하는지 알 수 있는 코드들이다. 목적은 친구의 정보를 출력하는 것인데 타이핑을 간결하게 해서 실수를 줄이고, 반복하는 상황에서 편이를 추구하기위해 코드가 발전하는 모습을 코드에 나타내었다. 사실, 너무 기본적이라 안봐도 무관한 내용이다;;; - 코드 - /* [8.1강 객체지향 프로그래밍과 클래스] 매개변수가 정해지지 않았으면 좋겠다... 할때 생략부호를 사용한다. */ #include #include #include using namespace std; // 방법 5. c++ class 사용할 때 class Friend {..
[C,C++ 개념정리] Ellipsis, 생략부호 매개변수가 정해지지 않았으면 좋겠다... 할때 생략부호 ' ... ' 을 사용한다. va_list로 생성, va_start와 va_end로 시작과 끝을 설정한다. - 코드 - #include #include // for ellipsis using namespace std; double findAverage(int count, ...){ // 파라미터로 받아올 argument의 갯수 double sum = 0; va_list list; // list를 생성한다. va_start(list, count); // list의 개수에 해당하는 count를 넘겨준다. for(int arg = 0; arg < count; ++arg) // 필요한 계산을 해준다. sum += va_ar..