1. 자동차에 대한 클래스 작성하기.
조건1) 속성 - 대리점명은 상수 클래스변수로 선언. : static 변수
조건2) 속성(변수) - 제조사, 색상, 가격, 모델명은 인스턴스 변수로 선언. 소멸자 추가
조건3) 기본 생성자를 만들고 아래의 속성값들을 초기화 바람.
제조사 - "기아", 색상 - "블랙", 이름 - "K7"
가격 - "사천만원", 대리점명 - "동대구 영업소" (스트링)
조건4) 모든 속성들을 매개변수로 전달하여 객체를 생성할수있는 생성자 추가.
조건5) 모든 속성 정보들을 출력하는 인스턴스 메쏘드(함수) 추가.
[출처] Java 클래스 1번째|작성자 박x신
car.h
#pragma once
#include <iostream>
#include <string>
using namespace std;
class Car {
private:
string manufacture;
string color;
string price;
string model;
public:
static const string BRANCH;
Car(); //기본생성자
Car(string manufacture, string color, string price, string model);
~Car();
void CarInfo();
void setModel(string model);
string getModel();
void setPrice(string price);
string getPrice();
};
car.cpp
#include "Car.h"
const string Car::BRANCH = "동대구영업소";
Car::Car() : model("k7"), price("40k") { //이 영역은 클래스 내부. 객체 내부 영역과 동일
cout << "기본 생성자 호출\n";
manufacture = "기아";
color = "black";
//price = "40k";
//model = "k7";
//const string BRANCH = "동대구영업소"; 이렇게 쓰면 안된다.- static변수라서. 클래스 내부 영역에 저장되는 것이 아니라서 따로 빼줘야 함.
}
Car::Car(string manufacture, string color, string price, string model) {
this->manufacture = manufacture;
this->color = color;
this->price = price;
this->model = model;
}
void Car::CarInfo() {
cout << "제조사 " << manufacture << endl;
cout << "색상 " << color << endl;
cout << "가격 " << price << endl;
cout << "모델 " << model << endl;
cout << "대리점명 " << Car::BRANCH << endl;
}
Car::~Car() {
cout << "소멸자 호출\n";
}
void Car::setModel(string model) {
this->model = model;
}
string Car::getModel() {
return model;
}
void Car::setPrice(string price) {
this->price = price;
}
string Car::getPrice() {
return price;
}
CarMain.cpp
#include <iostream>
#include <string>
#include "Car.h"
using namespace std;
void main() {
Car car;
car.CarInfo();
Car car1("이건제조사","색깔","이건가격","모델");
//Car car1;
//car1.Car::Car("이건제조사", "색깔", "이건가격", "모델");
car1.CarInfo();
}
// this->를 안 붙이면 충돌이 일어난다
//const가 있기 때문에 JIJUM = "동대구영업점" 으로 항상 고정됨. const를 붙이지 않더라도 JIJUM과 같이 변수명을 대문자로 쓰면 상수로 쓰겠다는 관례적인 약속임
// 소스파일에서는 include를 아무리 많이 넣어도 상관없다.. 그렇지만 헤더파일 에서는 주의해서 사용할것. 특히 " "는 더 주의
//#pragma once : 헤더파일을 중복 include 되는것을 방지하기 위함
'C++ > c++수업' 카테고리의 다른 글
학생관리 프로그램을 위한 학생(Student) 클래스 설계 (0) | 2020.10.20 |
---|---|
배열 포인터 (0) | 2020.10.20 |
static / 소스파일cpp ,헤더파일h 분리 예제+사칙연산 추가 (0) | 2020.10.19 |
헤더파일, cpp파일 분리. p140 Adder, calculator (0) | 2020.10.19 |
소스파일cpp ,헤더파일h 분리 예제 (p136) (0) | 2020.10.19 |