📄 cjj105.htm
字号:
<BR>
void main()<BR>
{<BR>
Sample(2,3);<BR>
}<BR>
<BR>
解:<BR>
本题说明了常量对象的构造函数和析构函数的调用情况。在main()中定义了一个常量对象,常量对象在构造之后立即析构。所以输出为:<BR>
x!=y<BR>
注意:常量对象的作用域不是整个main()函数,而是仅限于包含该常量的值表达式,表达式一旦计算完成,其中的对象就按构造的逆序析构。<BR>
<BR>
--------------------------------------------------------<BR>
<BR>
<FONT
color=#0000ff>题6.分析以下程序的执行结果</FONT><BR>
#include<iostream.h><BR>
class Sample<BR>
{<BR>
public:<BR>
Sample();<BR>
Sample(int);<BR>
~Sample();<BR>
void
display();<BR>
protected:<BR>
int
x;<BR>
};<BR>
<BR>
Sample::Sample()<BR>
{<BR>
x=0;<BR>
cout<<"constructing normally\n";<BR>
}<BR>
<BR>
Sample::Sample(int m)<BR>
{<BR>
x=m;<BR>
cout<<"constructing with
a number:"<<x<<endl;<BR>
}<BR>
<BR>
void Sample::display()<BR>
{<BR>
cout<<"display a number:"<<x<<endl;<BR>
}<BR>
<BR>
Sample::~Sample()<BR>
{<BR>
cout<<"destructing\n";<BR>
}<BR>
<BR>
void main()<BR>
{<BR>
Sample obj1;<BR>
Sample obj2(20);<BR>
obj1.display();<BR>
obj2.display();<BR>
}<BR>
<BR>
解:<BR>
本题构造函数与析构函数的调用顺序。这里定义了两个对象,先顺序调用obj1和obj2对象的构造函数,再调用各自的成员函数disp(),最后顺序调用obj2和obj1的析构函数。所以输出为:<BR>
constructing nomally<BR>
constructing with a number:20<BR>
display a number:0<BR>
display a number:20<BR>
destructing<BR>
destructing<BR>
<BR>
--------------------------------------------------------<BR>
<BR>
<FONT
color=#0000ff>题7.分析以下程序的执行结果</FONT><BR>
#include<iostream.h><BR>
class Sample<BR>
{<BR>
int n;<BR>
static int sum;<BR>
public:<BR>
Sample(int
x){n=x;}<BR>
void
add(){sum+=n;}<BR>
void
disp()<BR>
{<BR>
cout<<"n="<<n<<",sum="<<sum<<endl;<BR>
}<BR>
};<BR>
<BR>
int Sample::sum=0; //
静态数据成员赋初值<BR>
<BR>
void main()<BR>
{<BR>
Sample a(2),b(3),c(5);<BR>
a.add();<BR>
a.disp();<BR>
b.add();<BR>
b.disp();<BR>
c.add();<BR>
c.disp();<BR>
}<BR>
<BR>
解:<BR>
本题说明静态数据成员的使用方法。在类中定义了一个静态数据成员sum,在main()之前给它赋初值0,然后在main()中定义了三个对象,并执行各自的add()和disp()方法。所以输出为:<BR>
n=2,sum=2<BR>
n=3,sum=5<BR>
n=5,sum=10<BR>
注意:静态数据成员脱离具体的对象独立存在,其存储单元不是任何对象存储空间的一部分,但逻辑上所有对象都共享这一存储单元,对静态数据成员的任何操作都会访问这一存储单元,从而影响这一存储单元的所有对象。所以说静态数据成员不是对象成员,在引用时不需要用对象名。</P>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
</TR>
<TR>
<TD height=35 width="100%">
<DIV align=center></DIV>
</TD>
</TR>
</TBODY>
</TABLE>
</TD></TR></TBODY>
</TABLE>
</TD></TR></TBODY>
</TABLE>
</TD></TR></TBODY>
</TABLE>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width=750>
<TBODY>
<TR>
<TD bgColor=#c1c1c1 height=1></TD>
</TR>
</TBODY>
</TABLE>
<TABLE align=center border=1 cellPadding=0 cellSpacing=1
style="BORDER-COLLAPSE: collapse" width=550>
<TBODY>
<td align=center>
<div align="center">
<p><a href=mailto:jjsun36@sohu.com ><span class="body14black">mailto:jjsun36@sohu.com</span></a><span class="body12red">
热线电话:0523-4864559</span></p>
</div>
</td>
</TBODY>
</TABLE>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -