C++(11)
-
Palindrome
문제설명 길이가 100미만인 문자열이 입력될 때, 해당 문자열이 palindrome(좌우동형)인지 아닌지 검사하라. 먼저 palindrome인지 아닌지 확인하는 class를 작성한다. 문자열 처음부터 절반까지 순회하면서 대칭되는 문자들이 한 번이라도 서로 다르면 0을 return 하고 대칭되는 문자들이 모두 같으면 1을 return한다. 1을 return 받으면 "is a palindrome" 0을 return받으면 "is not a palindrome"을 출력한다.
2024.07.19 -
전기세 구하기
c++을 사용해 전기세를 구하는 프로그램을 만든다. 사용하는 언어가 c++이므로 class를 사용하여 프로그램을 구현하였다. KEPCO라는 클래스 안에 전기요금을 구하는 ElectricCharge함수와 세금을 구하는 TaxCharge함수를 넣는다. class 밖에서 함수를 구현할 때 클래스 범위지정 연산자인 ::를 붙여야한다. => (KEPCO::ElectricCharge)성수기와 비수기를 나눠야 하므로 if문을 사용하여 요금을 다르게 계산한다.사용량 요금에서 원단위 미만은 절사를 해야하므로 floor함수를 이용하여 절사해준다. 세금을 구하는 TaxCharge함수에서는 부가가치세를 원단위 미만 반올림해야하기 때문에 round함수를 사용하였으며 기반요금에서는 10원 미만 절사해야하기 때문에 전기요금..
2024.07.17 -
은닉화, 캡슐화
캡슐화 - 객체 지향 프로그래밍(OOP)에서 데이터와 그 데이터를 처리하는 메서드(함수)를 하나의 단위로 묶는 것 maker,model,color,price데이터와 그 데이터를 처리하는 call,camera,intro함수들을 한 class안에 캡슐화 시킨 모습이다. 은닉화 - 객체의 세부 구현을 외부로부터 숨기는 것 이런식으로 phone class안의 데이터 값을 넣을 수 있는데, 의도하지 않은 값들이 실수로 들어갈 수 있다.maker,model,color,price의 속성을 private로 설정하면 외부로부터 데이터를 입력,수정할 수 없게 되며, 객체의 내부를 보호할 수 있다.하지만 private때문에 제작자역시 main함수에서 바로 class로 값을 넣기는 어렵다. 그러면 어떻게 해야할까?생성자를 사..
2024.07.06 -
접근 제어 지시자
접근 제어 지시자는 구조체가 클래스로 탈바꿈하도록 돕는 문법이다. 지시자는 3종류가있다. public - 멤버에 관한 모든 외부 접근을 허용protected - 멤버에 관한 모든 외부 접근을 차단. 단, 상속 관계에 있는 파생 클래스에서의 접근은 허용private - 외부 접근뿐만 아니라 파생 클래스로부터의 접근까지 모두 차단. 클래스를 선언할 때 별도로 접근 제어 지시자를 기술하지 않으면 private로 간주 ●Private 먼저 Data 변수는 별도의 접근 제어 지시자를 설정하지 않았기 때문에 private이다. 즉, 사용자 코드에서 멤버 접근 연산자를 이용해 멤버 변수에 임의 접근할 수 없다. 그래서 main문 안에서 Data의 값을 직접 넣을 수 없다. 멤버 함수의 경우에는 private 멤버..
2024.07.01 -
클래스
컴퓨터 언어를 공부하면서 가장 많이 들었던 질문은 객체와 클래스의 차이였다. C를 공부할 때는 이 질문을 들으면 객체와 클래스가 뭐지? 먹는건가? 였고, 가끔 C++에 대해 공부할 때 이 질문을 들으면 클래스는 붕어빵 틀이고 객체는 붕어빵이다!!! 였고, Unity엔진을 사용하면서 C#을 공부할 때 이 질문에 대해서 비로소 답다운 답을 내놓을 수 있었다. 클래스는 객체의 특징을 정의한 설계도라고 표현할 수 있고, 객체는 클래스를 인스턴스화 시켜서 만들어진 하나의 인스턴스를 뜻한다. 별다른 설명이 필요하지 않은 일반적인 C 예제이다. 여기서 코드를 보면 제작자와 사용자가 마치 갑,을 관계같다고 생각한다.사용자는 제작자가 만든 자료구조(구조체)의 멤버 및 구성을 알고있어야하며, 자료구조에 담긴 정보를 출력하..
2024.06.26 -
네임스페이스
네임스페이스란?C++가 지원하는 각종 요소들(변수, 함수, 클래스 등)을 한 범주로 묶어주기 위한 문법이다. 네임스페이스의 블록 내부에 선언하는 변수나 함수들은 모두 명시한 '이름'에 속하게 된다. 내부에서 변수나 함수를 선언한다면 모두 해당 네임스페이스에 속한다. 위의 예시에선 TEST안에 있는 g_nData와 TestFucn가 TEST라는 네임스페이스에 속한다.이를 통해 우리가 입,출력을 할 때 사용되는 cin,cout,endl등은 모두 std라는 네임스페이스의 소속이라는 사실을 알 수 있다. 우리는 이런 네임스페이스를 생략할 수 있는 방법이 있다.using 선언을 통해 네임스페이스를 미리 선언한 후 네임스페이스를 생략하는 방법이다. 위와 다른점은 using 선언을 통해 std와 TEST 네임스페..
2024.06.24