without haste but without rest

[C++] 클래스 본문

ProgrammingLanguage/C++

[C++] 클래스

JinungKim 2020. 3. 2. 17:18

0. 구조체와 클래스

 

C의 구조체가 클래스구나 싶었는데 어느정도 맞았다. 차이점은 구조체의 경우 내부에 메소드를 포함할 수 없고, 클래스와 인스턴스의 관계 정도다.

 

(C++ 클래스는 자바랑 또 어느정도 다른 듯한 느낌이다.)

 


1. 클래스 예제

#include <iostream>
#include <string>

using namespace std;

class Student {
private:
    string name;
    int age;
    
public:
    Student(string n, int s) { name = n; age = s; }
    void show() { cout << name << ", " << age; }
};

int main(void) {
    Student s = Student("Jack", 20);
    s.show();
}

* priavte - 외부에서 해당 객체에 접근 불가

* 기본적으로 클래스는 멤버를 private 으로 간주, 구조체는 멤버를 public 으로 간주한다.

* 따라서 public 에서는 메소드가, private 에는 멤버가 주로 자리한다.

* 인스턴스는 서로 독립된 메모리 영역에 멤버 변수가 저장된다. 반면에 멤버 함수는 모든 인스턴스가 공유한다. 

 


2. this 포인터

 

this 포인터는 다른 언어에서도 많이 쓰던 거라 익숙하다.

#include <iostream>
#include <string>

using namespace std;

class Student {
private:
    string name;
    int age;
public:
    Student(string name, int age) {
        this->name = name;
        this->age = age;
    }
    void show() { cout << name << "," << age; }
};
int main(void) {
    Student s = Student("Jack", 20);
    s.show();
}

 

 


 

'ProgrammingLanguage > C++' 카테고리의 다른 글

[C++] 소멸자  (0) 2020.03.02
[C++] 생성자  (0) 2020.03.02
[C++] 튜토리얼  (0) 2020.03.02
Comments