728x90
반응형
Java
static로 선언하면 객체를 생성안해도 할당가능
접근제어 지시자
protected는 상속 받은 자식 클래스에게는 접근을 허용하지만 상속받지 않은 클래스에서는 접근을 불허한다.
#include <iostream>
using namespace std;
class Test;
class Smart
{
private:
int iNum2;
public:
int iNum1;
//friend Test;
protected:
int iNum3;
};
class Test : public Smart
{
public:
//Smart obj;
public:
//friend Smart;
Test()
{
iNum1=100;
//iNum2=200; // private 접근 불가하지만 friend로 서로를 연결해주면 접근할수가 있다.
iNum3=300;
}
};
int main()
{
Test obj;
obj.iNum1=100;
return 0;
}
<소스코드>
#include <iostream>
using namespace std;
class Base
{
private:
int num1;
protected:
int num2;
public:
int num3;
Base() : num1(1),num2(2),num3(3)
{
}
};
class Derived : protected Base // private로 Base를 상속받을경우 접근이 불가하기에 사실상 의미없는 상속이라 할수가 있다. public로 Base를 상속 받을 경우는 접근 속성을 그대로 상속한다.
{
};
int main()
{
Derived drv;
cout<<drv.num3<<endl; // Base 클래스를 protected 로 상속받았기에 num3도 protected로 선언되어서 외부에서 접근 불가하다.
return 0;
}
C++에서의 상속은 대부분 public 상속을 사용한다.
<소스코드>
IS-A 관계
A는 B이다. ( A : 자식 클래스 , B : 부모 클래스 상속 관계)
ex)
Smart : Car
{
}
}
HAS-A 관계
A는 B를 가지고 있다. ( 상속관계가 아닌 내부에 만들어져있다는 뜻 구성 관계)
ex)
Smart
{
Car obj;
}
오버라이딩
이름은 같지만 인자로 구분하는것을 오버로딩
이름과 인자도 같을때는 오버라이딩
상위 클래스에 있는 함수를 덮어섰다는건 재정의했다는 뜻임 오버라이딩이라 한다.
class Car
{
public:
char Color[100];
int Tire;
int Speed;
int Gas;
public:
Car()
{ Init();
cout<< "Car 디폴트 생성자" <<endl;
}
Car( char *cpColor)
{
Init();
strcpy(Color,cpColor);
cout<< "Car 생성자" <<endl;
}
~Car()
{
cout<< "Car 소멸자" <<endl;
}
void Print()
{
cout<< "Tire : "<<Tire<<", Color : " <<Color<<endl;
}
private:
void Init()
{
Color[0]=0;
Tire=0;
Speed=0;
Gas=0;
}
};
class Tico : public Car
{
public:
Tico() : Car( "Pink")
{
cout<< "Tico 디폴트 생성자" <<endl;
}
~Tico()
{
cout<< "Tico 소멸자" <<endl;
}
void Print() // 상위 클래스에 있는 함수를 덮어섰다는건 재정의했다는 뜻임 오버라이딩이라 한다.
{
cout<< "나는 Tico 입니다." <<endl;
}
};
가상 함수
함수 오버라이딩을 할때 사용함
부모 클래스 포인터 변수를 만들어서 자식 클래스의 주소를 저장하면 자식 영역을 사용할 수 없다.
이를 해결하기 위해서는 가상 함수를 선언해서 접근을 할수가 있다.
리턴 받은 RFID 해석
소스코드 추가 부분
<소스코드>
728x90
'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글
2014년 10월 21일 일일업무 출석번호 9번 김해성 (9) | 2014.10.21 |
---|---|
RFID 시리얼 통신 소스 (0) | 2014.10.21 |
MDS테크 신입 및 경력 모집 (0) | 2014.10.21 |
20141020월요일 업무일지 출석10번 김화린 (8) | 2014.10.21 |
20141016업무일지 7번 김재성 (9) | 2014.10.16 |
2014년 10월 15일 수업일지 김용우 (7) | 2014.10.15 |
2014.10.14 업무일지 - 김상엽 (9) | 2014.10.14 |
2014.10.13 일일 교육보고 - 김대희 (3) (9) | 2014.10.13 |