C++ (18) 썸네일형 리스트형 [C++] 이러한 피연산자와 일치하는 "<<" 연산자가 없습니다. 알고리즘 문제를 풀면서 string 클래스를 사용하였는데, cout으로 출력을 하려니 아래와 같은 오류가 발생했다. 왜 출력이 되지 않는지 ostream 파일을 뜯어보니, operator [C++] 문자열, 입력 C++에서 문자열을 사용하는 방법은 두 가지가 있다. 1. char 배열 사용 char str[5] = { 'a', 'b', 'c', 'd', 'e' }; 이 방식은 C언어에서 쓰던 방식과 같다. 문자열 입력 cin으로 문자열을 입력받게 되면 띄어쓰기, tab, enter 단위로 잘라서 받기 때문에 공백을 포함한 문자열을 한번에 입력받을 수 없다. #include int main() { char arr[100]; std::cin >> arr; std::cout [C++] 생성자와 소멸자 생성자란? 객체 생성 시 처음 한번 호출되는 함수다. 주로 값을 처음 초기화할 때 사용한다. 생성자는 클래스와 동일한 명칭을 가지며, 반환형이 없다. Point.h class Point { private: int xpos; int ypos; public: Point(); Point(int x, int y); void ShowPoint(); }; Point.cpp #include #include "Point.h" Point::Point() { xpos = 1; ypos = 2; } Point::Point(int x, int y) { xpos = x; ypos = y; } void Point::ShowPoint() { std::cout [C++] 정보은닉과 캡슐화 정보은닉보통 클래스의 멤버변수는 private으로 선언하는 경우가 많다.public으로 선언하여 어디서든 접근하면 편리하지 않을까? 하는 생각이 들겠지만, public으로 모든 변수를 선언하게 되면 실수나 예외상황에 대처하기가 어려울 수 있다. 예를 들어 프로그램을 작성할 때 포인트의 범위가 0이상으로 정의되어있다고 하자.이를 모르는 사람은 실수로 음수를 입력할 수도 있다.멤버변수를 모두 private 선언하여 접근하지 못하게 하고, SetX, SetY 함수로 접근하도록 유도하면아래와 같이 프로그램 내에서 음수를 입력했을 경우 예외를 처리할 수 있다. Point.h class Point { private: int xpos; int ypos; public: int GetX() const; int GetY(.. [C++] 객체지향 프로그래밍 절차지향 vs 객체지향절차지향 프로그래밍이란 말 그대로, 순차적으로(정해진 순서대로) 진행되는 프로그래밍 기법이다.따라서 함수가 중심이 된다.대표적으로 사용되는 언어는 C언어가 있다. 그럼 객체지향은 절차가 없나?객체지향에도 절차가 아예 없는 건 아니다.하지만 함수 중심으로 순차적으로 진행되는 것이 아니라, 객체 간의 상호작용을 통해 프로그램을 만든다.따라서 객체단위로 나뉘어져, 서로 연결해 사용한다. (객체에서 서로 함수호출)대표적으로 사용되는 언어는 Java, C++, C# 등이 있다. 그럼 객체지향에서 나오는 객체란 무엇인가? 객체(Object)란?하나 이상의 상태 정보(데이터)와 하나 이상의 행동(기능)을 하나의 제품으로 만들어 놓은 것이다.class는 객체를 만들기 위한 틀로, class를 실체.. [C++] 클래스 클래스란?클래스도 마찬가지로 여러 변수를 그룹화하는 데이터 유형이다.이전에 나온 C++의 구조체는 클래스의 일종이다. 클래스 선언클래스는 키워드 struct를 대신해 class를 사용하여 선언한다. class Point { public: int xpos; int ypos; }; 접근제어 지시자가 선언되면, 다음 접근제어 지시자가 나오기 전까지 적용된다. 접근제어 지시자C++에서는 다음과 같이 세 개의 접근제어 지시자가 있다. public 어디서든 접근 허용 protected 상속관계에 놓여있을 때, 유도 클래스에서의 접근 허용 private 클래스 내에서만 접근 허용 클래스에서는 접근과 관련해서 별도의 선언을 하지 않으면, 기본적으로 private 선언이 된다.하지만 구조체에서 별도의 선언을 하지 않으면.. [C++] 구조체 구조체란?연관있는 데이터를 묶을 수 있는 문법적 장치이다.예를 들면 학생에 관련된 데이터로 학생 이름, 학번, 휴대폰번호, 주소가 있다고 하자.각각의 데이터들은 별도의 변수로 정의할 수 있지만 학생이라는 이름으로 묶어서 정의하면 프로그래밍이 한결 수월해질 것이다. 아래는 간단히 포인트를 예로한 구조체의 사용법이다. 구조체 선언구조체는 struct라는 키워드를 사용해 선언한다. struct Point { int xpos; int ypos; }; 구조체 변수와 초기화구조체를 사용하려면 Point타입의 변수를 선언하면 된다.선언한 변수로 각 멤버에 멤버 선택 연산자(.)로 접근하여 초기화할 수 있다.(초기화하지 않으면 쓰레기값이 들어간다.) #include using namespace std; struct P.. [C++] new & delete C++에서 동적할당을 할 때에는 new 키워드를, 소멸할 때는 delete 키워드를 사용한다. * 동적할당이란?실행시간동안 사용할 메모리 공간을 할당하는 것이다.프로세스의 힙 영역에 할당되므로 프로세스가 종료되면 메모리가 해제된다.하지만 실행 중 메모리 낭비를 줄이기 위해 명시적으로 메모리 할당을 해제해주어야 한다.Java와 C#에서는 가비지 컬렉터가 존재하여 자동으로 해제가 되지만,C/C++에서는 가비지 컬렉터가 존재하지 않으므로 프로그래머가 함수를 사용해 해제해야 한다. 사용 예 (할당) int *ptr = new int; double *ptr = new double; int *arr = new int [5]; double *arr = new double[5]; char *str = new char[.. 이전 1 2 3 다음 목록 더보기