<DIV>hi:</DIV>
<DIV>  look at the following code:</DIV>
<DIV>in main.cc:</DIV>
<DIV>class Point{<BR> int m_x,m_y;<BR> public:<BR>  Point(int x,int y):m_x(x),m_y(y){}   <BR>  Point Get(){ return *this; } <BR>};</DIV>
<DIV>int main(void)<BR>{</DIV>
<DIV> Point p(1,2);<BR> Point p2(p.Get()); <BR> return(0);<BR>}</DIV>
<DIV>in t1.ah:</DIV>
<DIV>#include <stdio.h></DIV>
<DIV>aspect PointA{<BR> pointcut calGet()=call("% %::Get(...)");  <BR> advice calGet() : after(){<BR>  printf("after Call Get()");<BR> } <BR>};</DIV>
<DIV> </DIV>
<DIV>after ac++ manipulate</DIV>
<DIV>bcc32 -P main.cc</DIV>
<DIV>main.cc:<BR>Error E2285 t1/main.cc 24: Could not find a match for 'Point::Point()' in function __call_main_0_0(Point *)<BR>*** 1 errors in Compile ***</DIV>
<DIV> </DIV>
<DIV>in manipulated main.cc there is code:</DIV>
<DIV>inline ::Point __call_main_0_0 (::Point *dstthis){<BR>      ::Point result;<BR>   result = dstthis->Get();<BR>  AC::invoke_PointA_PointA_a0_after ();<BR>   return (::Point )result;<BR> }</DIV>
<DIV>of course" ::Point result" is the problem,becouse no this constructor.</DIV>
<DIV>but in main.cc(not manipulated main.cc),I donot use this constructor.</DIV>
<DIV>so if we only compile this main.cc,there is no error.</DIV>
<DIV> </DIV>
<DIV>bye the way ,i don't know why in bcc32:</DIV>
<DIV>Point p; is error</DIV>
<DIV>but </DIV>
<DIV>Point p();is correct.</DIV>
<DIV> </DIV>
<DIV>yours truly,</DIV>
<DIV>               guo_zia</DIV><p><br><hr size=1><b>Do You Yahoo!?</b><br>
<a href="http://cn.rd.yahoo.com/mail_cn/tag/*http://hp.allyes.com/laserjet/gamestory/index.html?jumpid=ex_hphqapcn_MongooseLJ1010/201073CN407016/Yahoo" target=blank>»ÝÆÕTTÓÎÏ·¾ç£¬ÍæÓÎÏ·£¬Öд󽱣¡</a>