원하는 동작이 된다면 크게 신경쓰지 않아도 되는 경고입니다..
경고의 이유는..
함수의 결과값이 전혀 지정되지 않은 채 해당 함수가 종료될 수 있기 때문입니다..
전체의 로직이 정말 결과값이 지정되지 않은 채 디폴트 상태로 리턴되어도..
괜찮은지 보시고..
아니라면..
함수의 Begin 다음에 초기화를 시켜주세요..
아니면 Exit 대신 조건에 안맞았을 경우 결과값을 지정해주시거나요..
박강 님이 쓰신 글 :
: 안녕하세요..델파이와 프로그래밍의 초보입니다.
:
: 다음과 같이 실수들의 array와 그 갯수를 field로 갖는 클래스를 만들었습니다.
: ---------------------------------------
: unit MLvector;
:
: interface
:
: uses SysUtils,classes;
: type
: Lvector=class(TPersistent)
: private
: element:array of real;
: dimension:integer;
: public
: constructor Create(vsize:integer);
: {constructor Create(ele:array of real);override;}
: Destructor Destory;
: procedure InsertElement(valr:real; locat:integer);
: function GetElement(ind:integer):real;
: function GetNorm():real;
: procedure Normalize();
: procedure PrintVec();
: procedure DeleteElement(ind:integer);
:
: end;
: function AddVector(first,second:Lvector):Lvector;
: function SubVector(first,second:Lvector):Lvector;
: function dotVector(first,second:Lvector):real;
: ....................
:
: function AddVector(first,second:Lvector):Lvector;
: var
: I:integer;
: begin
: if (first.dimension)=(second.dimension) then
: begin
: Result.dimension:=first.dimension;
: for I:=0 to first.dimension do
: begin
: Result.element[i]:=first.element[i]+second.element[i];
: end;
: end
: else
: exit;
: end;
:
: ---------------------------------------------------
: 이것을 컴파일하면 다음과 같은 메시지가 뜨는데요..
:
: Warning: Return value of function 'AddVector' might be undefined
:
: 보통 클래스의 맴버를 참조하는 함수를 만들어 쓸때 return값은 어떻게 하는지 알고싶습니다.
: 실행은 제대로 되는데 다음과 같은 경고가 뜨는게 맘에 걸리네요. 책을 찾아봐도 해결책을 잘 모르겠구요.
:
: 여러분들의 도움을 바랍니다.
|