변수의 통용범위에 대한 학습이 필요하시네요..
: int duck::setage(int age){
: int itsage=age;
: return itsage;
: }
잘 보시면 .. itsage가 클래스의 멤버변수에 대입한것이 아닌..
지역변수에 대입하고 있습니다.
조영호 님이 쓰신 글 :
: 흰색, 검은색, 파란색의 오리 삼형제를 만들고자 한다.
: 흰오리는 10살, 검은색, 파란색은 각각 7, 5살이다.
: 하루 종일 농장과 냇가를 오가며, 먹이를 먹는다. 먹이는 농장에서 제공된다.
: 각 오리는 먹이를 자신의 나이에 2배까지 먹을 수 있으며, 먹이를 기반으로 걸어 다닌다.
: 배속의 먹이가 다 소화되면 더 이상 다닐 수 없으며, 먹이를 더 먹거나 그 자리에서 걸음을 멈춘다.
: 줄을 지어 다니며, 첫번째 오리가 울면 나머지 오리도 따라 운다.
:
: 위시나리오를 토대로 DUCK이란 클래스를 만들려고 하는데;;
: 감도 안잡히네요;;
:
: 어떤식으로 접근해야 하는지 조언 부탁드립니다.
:
:
:
: 제가 지금 2시간 걸려서;;
:
: ;;
: 어설프게나마 짜봤는데;
: 각 객체의 나이값이 저장이 안되요 -_-;; 이상한 쓰레기값으로 나오는데;;
: 원인이 뭘까요?;;
:
: #include<iostream.h>
: class duck{
: public:
: char *duckname;
: int itsage;
: int feed;
: int farm();
: int setage(int a);
: void working();
: duck();
: ~duck();
: };
: duck::duck(){
: cout << "뒤뚱뛰뚱";
: }
: int duck::setage(int age){
: int itsage=age;
: return itsage;
: }
:
: int duck::farm(){
: int feed = 2*itsage;
: return feed;
: }
: duck::~duck(){
: cout << "꽥꽥";
: }
: void duck::working(){
: int i;
: for(i=0;i<=feed;i++)
: {
: cout << "*";
: i++;
: }
: cout << "배고파!!";
: }
: void main(){
: duck white;
: white.setage(10);
: white.duckname="WhiteDUCK";
: cout << "My name is" << white.duckname << endl;
: cout << "My age is" << white.itsage << endl;
: white.working();
: duck blue;
: blue.setage(7);
: blue.duckname="BlueDUCK";
: cout << "My name is" << blue.duckname << endl;
: cout << "My age is" << blue.itsage <<endl;
: blue.working();
: duck black;
: black.setage(5);
: black.duckname="BlackDUCK";
: cout << "My name is" << black.duckname << endl;
: cout << "My age is" << black.itsage << endl;
: black.working();
: }
|