without haste but without rest
[C++] 클래스 본문
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