[C++/Syntax] 예외 처리와 형변환

Try … catch try {} 구문 안의 내용중 예외(Exception)이 발생한다면, catch구문안의 내용을 실행하는 문법이다. 이 예외라는것은 런타임 에러와 아주 조금이나마 유사하다고 볼수있을것이다. 컴파일 중엔 에러가 발생하지 않는 에러에 대해서 대처할 수 잇기 때문이다. Syntax try{    Some Code … } catch (exception_type val) {    Exception controlling … } 위와 같은 구문이며 if else if …

[C++/Syntax] Template (in Class)

클래스에서의 탬플릿 템플릿은 함수뿐만아니라 클레스에서도 사용이가능하다. 대부분의 경우 선언, 작동방식, 특수화의 경우는 함수와 유사하다. 동일한 부분에 대해선 짧게 넘어가고, 클래스와 템플릿에 대해서 설명하지 못한 부분에대해서 추가적으로 이야기해본다. Syntax template <typename T> class TEST{ private:     T num; public:     TEST(T x=0);     void show(); 함수와 사용방법은 동일하다. template을 선언하고 <typename T>를 기준으로 …

[C++/Syntax] Template (in Func)

템플릿(Template) 템플릿이란 ‘틀’이란 뜻 그대로 틀만을 짜주고, 이후 컴파일 과정에서 컴파일러가 알아서 해주는 도구이다. 우린 틀만을 만들어주면 컴파일러가 완성된 코드를 만들어 실행하게 하는 방식으로 하여금 코드의 크기를 줄이고 반복된 코드를 줄인다. Syntax 선언 template <typename T> 혹은 <class T> T test(T num1, T num2){     return num1+num2; } 위 예시를 보면 타입명 대신 T가 …

[C++/Practice] String Class의 구현

Hand made String Class 지금까지 공부한 내용을 바탕으로 C++의 String 클래스를 직접 만들어 본다. String Class의 기능들은 다음과 같다. 선언 방식은 String(), String(char*), String(String)이 있다. ‘==’ 연산은 두 문자열을 비교한다. ‘+’ 연산은 두 문자열을 연결한 String class를 반환한다. ‘+=’ 연산은 기존 String class에 이어 붙여 준다. ‘<<‘ 연산은 문자열을 출력(out)한다. ‘>>’ 연산은 문자열을 입력(in)받는다. 위와 …

[C++/Syntax] 연산자 오버로딩

Operation Overloading C++에선 연산자를 호출할 때 a+b를 그대로진행하는 것이 아닌 a.operator+(b)와 같은 함수형식으로 연산을 진행한다. 즉, +, /, -, *, =, += 과 같은 연산자는 함수오버로딩을 지원해, 클래스마다 연산방식을 제어 해 줄 수 있다. Syntax 문법은 ‘반환형’ operator’연산자'(피연산변수){ … }이다. 예를 들어 ‘+’ 연산자를 오버로딩 할 경우 class Test2 {     …     …

[C++/Syntax] 상속 etc…

클래스 내 함수 클래스 내의 함수는 실제로 클래스 안에 있을까? 이 물음에 대한 답변은 함수 포인터에 대한 개념이 필요한데, 각각의 클래스 안엔 함수를 가르키는 포인터가 존재해 메모리에 상주하는 함수를 불러오는 것이다. 하지만 이는 C에서 struct를 통해 구현 가능한 것이다.  즉, C++은 동작 방식이 다른데 이 방식이 바로 “가상함수”때문이다. 가상함수는 가상함수 테이블을 통해 동작이 이루어지는데, key엔 …

[C++/Syntax] 상속2

상속의 성질과 포인터 상속은 다양한 성질을 지니고 있다. 그 다양한 성질과 포인터가 만나게 되면 더욱 다양한 성질을 띄게 되는데, 이는 C++에서의 객체를 사용함에 있어서 다양한 방식을 제공하게 해준다. 객체 상속과 포인터 class Test { private: int Testnum; public: Test(int num) { this->Testnum = num; } void test() { std::cout << “test in Test” << std::endl;} …

[C++/Syntax] 상속

상속 (inheritance) 객체지향의 꽃이라고도 불리는 상속은 상위 클레스의 함수, 변수 등을 반복해서 작성하지 않고 재사용을 위해서 만들어 졋다. friend를 써도 될거 같은데, friend는 private변수까지 모두 다 사용이 가능해지는데, 이는 접근제어가 깨지게 된다. 이를 보안하기 위해 나온게 상속은 아니지만, 현재로써 내가 이해한 가장 큰 필요성인 것 같다. 문법 Syntax class Test { private: int num; public: …