본문 바로가기

프로그래밍/C ++

[C++] 클래스 파생 클래스 선언 형식class DClassName : visibilitySpec BClassName { //DClassName: 파생 클래스, BClassName: 기초클래스 visibilitySpec_1: // 가시성 지시어 데이터 멤버 또는 멤버함수 리스트; visibilitySpec_1: 데이터 멤버 또는 멤버함수 리스트; ...};class Person{ string name;public: void setName(cons string &n); const string getName() const; void print() const;};class Student : public Person { string school;public: void setSchool(c.. 더보기
[C++] 연산자 다중 정의 #include using namespace std;class IntClass { int value;public: IntClass(int n) : value(n) { } IntClass operator ++ (int) { return IntClass(value++); } // 후위 연산자 IntClass& operator += (const IntClass& n) { value += n.value; return *this; } void disp() const { cout  대입 연산자 기본 대입 연산자: 객체의 데이터 멤버를 그대로 복사묵시적 대입 연산자: 우측 피연산자 데이터 멤버를 좌측 피연산자에 그대로 복사 - 대입 연산자의 다중정의// 대.. 더보기
[C++]생성자 생성자(Constructor)란객체가 생성될 때 수행할 작업을 정의하는 특수한 멤버함수생성자에 인수를 전달할 수 있도록 매개변수 선언생성자 머리에 반환 자료형을 표시하지 않으며, retrun명령으로 값을 반환할 수 없음생성자를 public으로 선언해야 클래스 외부에서 객체를 생성할 수 있음class Counter {    int value;public:    Counter(){ value = 0; }    ...} 초기화 리스트란?생성자의 머리에 데이터 멤버를 초기화하는 값들을 나열한 리스트데이터멤버이름{초깃값} 형태로 초깃값 지정ex)    Counter() : value{0} { } 소멸자 (destructor)객체가 소멸될 때 수행할 작업을 정의하는 특수한 멤버 함수클래스의 이름에 ~ 붙여 선언소멸.. 더보기
[C++] 객체 (object) 객체란,소프트웨어  시스템 안의 어떠한 대상을 표현하는 것정해진 처리를 수행할 수 있음 👉 행위, 메소드, 멤버함수처리 과정에 따라 내부 상태 변화 👉 속성, 데이터 멤버다른 객체와 상호작용 👉 메시지 전달(멤버함수 호출)객체 사용 형식객체 이름에 멤버선택 연산자(.)를 사용하여 객체의 멤버 액세스한다.객체 멤버함수 안에서 그 객체에 속한 멤버를 사용할 때는 멤버 이름만으로 액세스한다.class Counter {    int value; public:    void reset()        { value = 0; }    void count()        { ++value; }    int getValue() const        { return value;}};int main(){    Co.. 더보기
[C++] 함수 함수의 형식ReturnType functionName(fParameterList) // 머리부{ // 몸체 블록 Type1 localVar1; // 지역변수 선언 Type2 localVar2; ······ statement1; // 처리할 작업을 수행하는 문장 statement2; ······ return returnExpression; // 결괏값을 반환함} ex] n개의 데이터가 들어있는 정수형 배열에서 최댓값을 구하는 함수#include using namespace std;// 배열에서 최대값을 찾는 함수int findMax(int arr[], int n) { int max = arr[0]; for (int i = 1; i  return 명령함수를 마치고 함수를 호출한 곳으로 복귀함수 안.. 더보기
[C++] 자료형 (묵시적형변환) 변수의 사용 영역int a; // 비지역변수 - 선언된 이후 프로그램 전체 영역에서 사용 가능static int b{10}; // 비지역변수 - 선언된 이후 소속 파일의 전체 영역에서 사용 가능int f() { int c{20}, d{30}; // 비지역변수 선언된 이후 소속 블록의 전체 영역에서 사용 가능 { int d{40}; int e{50}; // 지역변수 - 선언된 이후 소속 블록의 전체 영역에서 사용 가능 }} const 한정어변수의 값을 수정할 수 없게 함초기화를 통해서만 값을 정할 수 있음컴파일 시에 값을 알 수 없으면 오류 발생함constexpr 한정어값을 컴파일할 때 평가한다실행 중 값을 평가하는 것에 비해 효율적으로 동작할 수 있게 함모든 인수가 constexp.. 더보기
[c++] C++ 변수의 특징 일반변수, 구조체, 배열, 클래스에 따라 초기화 방법이 다르다.auto→ 컴파일할 때 타입을 결정, 실행 시 오버헤드는 없다.→ 단점: 가독성이 떨어진다. int main(){ int x[5] = {1,2,3,4,5}; auto n = x[0]; // auto : 변수 선언시, 우변의 표현식 조사해서 컴파일러가 타입 결정 } decltype→ ()안의 표현식으로 타입을 결정→ 함수(클래스) 템플릿 등을 만들 때 주로 사용decltype(n) n1; //int n1;배열과 auto//int x[5] = {1,2,3,4,5}; 일 때//auto a = x; //int a[5] = x; //이렇게 결정되었다면 컴파일 에러//int* a = x; decltype(x) d;decltype(x) d1 = x; //.. 더보기
[C++] iosteam 표준 입출력 ## C++ 표준 입출력 c++에서의 표준 함수들은 함수 앞에 std:: 를 붙여주어야 사용할 수 있다. CC++출력printf 함수std::cout 객체변수값 출력%d, %f 필요format 지시어 필요 없음특징 개행 \n\n 또는 std::endl입력scanf 함수- 주소를 전달 (&n)std::cin 객체- 주소가 아닌 n으로 전달헤더파일std::cout 객체C++ 초창기부터 사용되던 표준 출력 객체단점 1: 여러 개 변수 출력시 코드 복잡단점 2: 성능이 느리다 (printf 사용..)#include //stdio.h#include int main(){ int n = 10; double d = 3.4; printf("%d, %f \n", n, d); //c언어 std::co.. 더보기