Native/C++
데이터의 보호
aucd29
2013. 10. 2. 18:58
[code]#include <turboc.h>
class student
{
private:
int stNum;
char name[16];
unsigned score;
BOOL testScore(int aScore)
{
return (aScore >= 0 && aScore <= 100);
}
public:
student(int aStNum)
{
stNum = aStNum;
name[0] = 0;
score = 0;
}
int getStNum()
{
return stNum;
}
const char* getName()
{
return name;
}
// name의 변수는 15개로 제한 되어 있기 때문에 그 이상의 데이터가 들어오게
// 된다면 컷팅을 해줘야 된다 그렇기 때문에 strncpy를 이용해서 15개 이상은
// 복사하지 않게 되고 만약에 외부에서 name을 strcpy를 이용 15개 이상을 입력
// 하게 된다면 이 자료구조는 완전히 망가 지게 되므로 외부에서 제어를 할 수
// 없게 하기 위해서 name[16] 은 private로 처리 되었다.
void setName(char *aName)
{
strncpy(name, aName, 15);
}
unsigned getScore()
{
return score;
}
void setScore(int aScore)
{
if(testScore(aScore))
score = aScore;
}
};
void main()
{
student kim(8906123);
kim.setName("kim Hero");
kim.setScore(99);
printf("Number : %d, Name : %s, Score : %d\n",
kim.getStNum(), kim.getName(), kim.getScore());
}[/code]
class student
{
private:
int stNum;
char name[16];
unsigned score;
BOOL testScore(int aScore)
{
return (aScore >= 0 && aScore <= 100);
}
public:
student(int aStNum)
{
stNum = aStNum;
name[0] = 0;
score = 0;
}
int getStNum()
{
return stNum;
}
const char* getName()
{
return name;
}
// name의 변수는 15개로 제한 되어 있기 때문에 그 이상의 데이터가 들어오게
// 된다면 컷팅을 해줘야 된다 그렇기 때문에 strncpy를 이용해서 15개 이상은
// 복사하지 않게 되고 만약에 외부에서 name을 strcpy를 이용 15개 이상을 입력
// 하게 된다면 이 자료구조는 완전히 망가 지게 되므로 외부에서 제어를 할 수
// 없게 하기 위해서 name[16] 은 private로 처리 되었다.
void setName(char *aName)
{
strncpy(name, aName, 15);
}
unsigned getScore()
{
return score;
}
void setScore(int aScore)
{
if(testScore(aScore))
score = aScore;
}
};
void main()
{
student kim(8906123);
kim.setName("kim Hero");
kim.setScore(99);
printf("Number : %d, Name : %s, Score : %d\n",
kim.getStNum(), kim.getName(), kim.getScore());
}[/code]