클래스 외부에 출력함수 정의 하는법좀 가르켜주세요
에일린
class ProcessScore{
public:
double avg;
ProcessScore(int *p, int index)
{
//평균을 계산하는 처리
int sum = 0;
for(int i=0; iindex; i++){
if((*p) 0) throw IllegalScore;
//음수가 아닌 정상 성적에 대한 평균 계산 루트
sum+= *p;
p++;
}
avg = sum/index;
}
void print( );
};
void print( )
{
cout 평균값은 : avg입니다.endl;
}
int main()
{
int score[5]= {10,20,30,40,50};
try{
ProcessScore p(score, 5);}
p.print();
catch(const char *e){
cout 오류발생: e endl;
}
return 0;
}
위와 같은 소스인데저쪽에 빨간색으로 해논 부분에서 막혀서 질문 드려요.
프린트 함수를 호출해서 값을 출력하려고 하는데p객체에 들어있는 avg 값을 가져와야 하는데 어떻게 접근을 해야 하는지 모르겠어요.
클래스 내부에서 프린트 함수를 정의하게 되면 접근이 가능하지만 클래스 외부에서 하는 법을 알고 싶어요.
그리고 멤버변수가 private 로 지정되어있으면 get set함수를 만들어서 접근을 해야 한다고 들었는데 이럴경우에는 어떻게 해야 하나요?
현재 위에서는 public 로 지정 해놔서 상관없을것 같지만.. 궁금해서요;;
아시는분 답변좀 해주세요 ~..
긴글 읽어주시느라 감사합니다 ~!!
-
남은
저때문에 고생하셨네요.
에구 감사합니다~!! -
나리
아 어렵네요.
암튼 열심히하세요! 파이팅! : ) -
분홍색진주
이예제를 배우면서 try 문은 예외가 발생할수 있는 부분만 넣으라고 해서 도통 이해가 안되네요.
print()함수는 출력하는 함수이기때문에 예외가 발생할 일이 없다보니 당연히 될거라 생각했는데
try문 안에서 지역객체로 되서 그안에서만 사용이 가능하다면 객체를 이용한 함수 호출등은
예외가 발생하지 않더라도 그안에 넣어야 된다는 소리가 되는데..
영 어렵네요;; -
머즌일
위의 소스는 예외처리하면서 배운 예제 인데
위에서는 int score[5]= {10,20,30,40,50};
의 값을 객체생성할때 값을 넘겨주었어요. 만약 여기서 음수가 있다면 try에서 확인하고
catch 문을 불러 오는거겠죠. -
오미자
P객체 생성자에 그값이 들어가면 잡는다...
흠 뭔가이상하게느껴지는 -
피라
흠, 트라이문안에 쓰시면 그안에 지역객체가 되지않나요..?
지금 try문 교재보고 참고하는거라.. -
옆집언니
위에서 try문 내부에서 객체 생성을 해주었는데 이경우에는 안되는 건가요?
try{
ProcessScore p(score, 5);
}
try 문을 처음써봐서 그런지 도통 모르겟네요.. -
나나
p객체 선언안하셧어요
ProcessScore p; 해주셔야... -
찬바리
아 !! 그것때문에 실행할때 계속 오류가 발생했었네요.
헛..p.print(); 를 catch 밑에다 써주니까 p를 선언되지 않은 식별자라고 뜨네요.
try 문 안에 넣어주면 되는데. 오류 처리할필요 없는 print()함수를 넣기도 그렇고 왜 그런걸까요;;; -
시원
그리고 try catch문은 하나의 문장입니다.
중간에 다른것이들어가면 안됩니다