728x90
반응형
1학년 때 시험대비할 겸 정리했던 글
*객체들의 배열
#include <iostream>
#include <string>
using namespace std;
class Car {
int speed;
int gear;
string color;
public:
Car(int s = 0, int g = 1, string c = "white") :speed(s), gear(g), color(c) {
}
void print() {
cout << "속도 " << speed << "기어 " << gear << "색상 " << color << endl;
}
};
int main() {
Car objArray[3] = {
Car(0,1,"white"),
Car(0,1,"red"),
Car(0,1,"blue")
};
for (int i = 0; i < 3; i++) {
objArray[i].print();
}
return 0;
}
*객체의 동적 생성
#include <iostream>
#include <string>
using namespace std;
class Car {
int speed;
int gear;
string color;
public:
Car(int s = 0, int g = 1, string c = "white") :speed(s), gear(g), color(c) {
}
void print() {
cout << " 속도 " << speed << " 기어 " << gear << " 색상 " << color << endl;
}
};
int main() {
Car myCar;
myCar.print();
Car *pCar = new Car(0, 1, "blue");
pCar->print();
return 0;
}
*this를 사용하는 예
#include <iostream>
#include <string>
using namespace std;
class Car {
int speed;
int gear;
string color;
public:
Car(int s = 0, int g = 1, string c = "white") :speed(s), gear(g), color(c) {
}
int getSpeed() {
return speed;
}
void setSpeed(int speed) {
if (speed > 0)
this->speed = speed;
else
this->speed = 0;
}
void print() {
cout << " 속도 " << speed << " 기어 " << gear << " 색상 " << color;
}
void isFaster(Car* p) {
if (this->getSpeed() > p->getSpeed())
this->print();
else
p->print();
cout << "의 자동차가 더 빠름" << endl;
}
};
int main() {
Car c1(0, 1, "blue");
Car c2(100, 3, "red");
c1.isFaster(&c2);
return 0;
}
*인스턴스 변수 : 객체마다 하나씩 있는 변수(자동차의 속도, 자동차의 기어 등)
정적 변수 : 모든 객체를 통틀어서 하나만 있는 변수(자동차의 수)
*정적 멤버 변수
public:
static int count; //정적변수 선언
Car(int s=0, int g=1, string c="white") : speed(s), gear(g), color(c){
count ++;
}
~Car(){
count --;
}
메인문 위에
int Car::count = 0; //정적변수 초기화
*정적 멤버 함수 주의할점
정적 멤버 함수에서 멤버 변수들을 사용할 수 없다
정적 멤버 함수에서 일반 멤버 함수를 호출하면 역시 오류가 뜬다
*클래스와 클래스 간의 관계
사용 : 하나의 클래스가 다른 클래스를 사용한다
포함 : 하나의 클래스가 다른 클래스를 포함한다
상속 : 하나의 클래스가 다른 클래스를 상속한다
728x90
반응형