336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
객체 : 의미있는 값을 갖고있고, 다른 값을 바꿀수 있는 함수를 갖고 있고, 실제로 존재하는 것
클래스 : 어떤 값들의 타입을 분류하여 멤버 변수로 만들어 놓고, 다른 값을 바꿀수 있는 함수를 갖고 있다.
실제로 존재하지 않는다. 분류
추상화 : 객체의 특징을 찾아내어, 클래스로 작성하는 일
캡슐화 : 객체의 멤버 변수, 멤버 함수를 접근지정자를 통하여 접근제어하는 것
생성자 함수 : 객체가 생성될때 객체의 멤버 변수값을 채워 넣기 위한 함수
생성자 함수 오버로딩 : 생성자 함수가 다양한 매개변수 형태에 적용되기 위한 기술
소멸자 함수 : 객체가 소멸 될때 호출되는 함수
student.h
#include <iostream>
using namespace
std;
class Student
{
private:
int
studentNumber;
char
name[30];
string parentAddress;
string studentAddress;
char
major[30];
char
phoneNumber[30];
double
averagePoint; // 전체평점
public:
Student(); // 오버로딩1-1
Student(int
studentNumber, char* name); // 오버로딩1-2
Student(Student& s); // 오버로딩1-3
~Student();
void
setStudentNumber(int studentNumber);
int
getStudentNumber();
void
setName();
int
getName();
// 학생전체조회
// 나의정보조회
// 학적변동
};
student.cpp
#include "student.h"
Student::Student() // 오버로딩1-1
{
studentNumber = 1500000;
strcpy(name, "");
parentAddress = "";
studentAddress = "";
strcpy(major, "");
// 의미: major = "";
strcpy(phoneNumber, "");
averagePoint = 0.0;
}
Student::Student(int studentNumber, char*
name) // 오버로딩1-2
:parentAddress(""),studentAddress("")
{
this->studentNumber
= studentNumber;
strcpy(Student::name, name);
strcpy(major, "");
// 의미: major = "";
strcpy(phoneNumber, "");
averagePoint = 0.0;
}
Student::Student(Student&
s)
{
studentNumber = s.studentNumber;
strcpy(name, s.name);
parentAddress = s.parentAddress;
studentAddress = s.studentAddress;
strcpy(major, s.major);
strcpy(phoneNumber, s.phoneNumber);
averagePoint = s.averagePoint;
}
Student::~Student()
{
}
void Student::setStudentNumber(int studentNumber)
{
this->studentNumber
= studentNumber;
}
int Student::getStudentNumber()
{
return
studentNumber;
}
main.cpp
#include "student.h"
int main()
{
// 학생정보관리프로그램
Student s1(12345,"홍길동"); // 학생1명
cout << s1.studentNumber << endl;
return 0;
}