100提几个问题
家里的机器不能上2网,搜集了一个星期的问题到网吧来问各位拉!!!
1.在下列类中 输出结果为什么是这个样子的?
#include <iostream>
using namespace std;
class Monitor{
public:
static int count;
public:
void incident()
{
++count;
}
void decrement()
{
--count;
}
void print()
{
cout<<Monitor::count<<endl;
}
};
//-------------------
class Monitor2{
void *d;
public:
Monitor2(Monitor *p)
{
d=p;
Monitor *s;
s=reinterpret_cast<Monitor *>(d);
s->incident();
s->print();
cout<<"Monitor2"<<endl;
}
~Monitor2()
{
cout<<"~Monitor2"<<endl;
reinterpret_cast<Monitor *>(d)->decrement();
reinterpret_cast<Monitor *>(d)->print();
}
};
int Monitor::count=0;
void sdf()
{
Monitor m;
Monitor2 pp(&m);
}
Monitor m1;
Monitor2 pp1(&m1);
int main()
{
sdf();
}
这个函数定义了两次对象但是只调用了一次析构函数.
但是如果把那个全局定义的对象改成局部对象,那么就能正常析构这个对象.?????
在C++全局类对象是不是不调用析构函数的 ???
//----------------------------------------------------------------------------
1.在下列类中 输出结果为什么是这个样子的?
#include <iostream>
using namespace std;
class Monitor{
public:
static int count;
public:
void incident()
{
++count;
}
void decrement()
{
--count;
}
void print()
{
cout<<Monitor::count<<endl;
}
};
//-------------------
class Monitor2{
void *d;
public:
Monitor2(Monitor *p)
{
d=p;
Monitor *s;
s=reinterpret_cast<Monitor *>(d);
s->incident();
s->print();
cout<<"Monitor2"<<endl;
}
~Monitor2()
{
cout<<"~Monitor2"<<endl;
reinterpret_cast<Monitor *>(d)->decrement();
reinterpret_cast<Monitor *>(d)->print();
}
};
int Monitor::count=0;
void sdf()
{
Monitor m;
Monitor2 pp(&m);
}
Monitor m1;
Monitor2 pp1(&m1);
int main()
{
sdf();
}
这个函数定义了两次对象但是只调用了一次析构函数.
但是如果把那个全局定义的对象改成局部对象,那么就能正常析构这个对象.?????
在C++全局类对象是不是不调用析构函数的 ???
//----------------------------------------------------------------------------
...全文
相关推荐
Serv-U提权综合工具
Serv-U提权综合工具 开发环境:VC6.0sp6 + XPSP2 用ASProtect加壳 文件md5校验值:5377a1ae7994a100d8207a833cfa8542
2020八年级数学下册第四章因式分解第10课时提公因式法重点练北师大版20200415283
2020八年级数学下册第四章因式分解第10课时提公因式法重点练北师大版20200415283
八年级数学下册 第二章 2.2提公因式学案(1)(无答案) 北师大版
八年级数学下册 第二章 2.2提公因式学案(1)(无答案) 北师大版
初二数学因式分解.doc
初二数学因式分解.doc
C 语言经典编程100例
C 语言经典编程100例,对C语言新手来说是很好的学习资料,练习C语涉及到方方面面。


