用c++编写一个小程序 有分加
设计一个程序测试构造函数和析构函数在内存分布的顺序和消除二楼给的编译时一个错误。三楼能不能给个完整的呢~我能直接交的。。。。。。。...
设计一个程序 测试构造函数和析构函数在内存分布的顺序和消除
二楼给的编译时一个错误。
三楼能不能给个完整的呢~ 我能直接交的。。。。。。。 展开
二楼给的编译时一个错误。
三楼能不能给个完整的呢~ 我能直接交的。。。。。。。 展开
展开全部
很简单啊~~
基本的原理就是:先构造的后析构,后构造的先析构
实际上这是一个堆栈的数据结构,满足先进后出的原理
给你一个很简单的例子:(我没有在VC中写,直接在baidu上写的,所以可能有错,不过你知道原理就行了)
class MyTestA
{
MytestA(){cout <<"A构造函数执行"};
~MyTestA(){cout <<"A析构函数执行"};
};
class MyTestB
{
MytestB(){cout <<"B构造函数执行"};
~MyTestB(){cout <<"B析构函数执行"};
};
int main()
{
MyTestA a;
MyTestB b;
return 0;
}
最后的结果是:
A构造函数执行
B构造函数执行
B析构函数执行
A析构函数执行
基本的原理就是:先构造的后析构,后构造的先析构
实际上这是一个堆栈的数据结构,满足先进后出的原理
给你一个很简单的例子:(我没有在VC中写,直接在baidu上写的,所以可能有错,不过你知道原理就行了)
class MyTestA
{
MytestA(){cout <<"A构造函数执行"};
~MyTestA(){cout <<"A析构函数执行"};
};
class MyTestB
{
MytestB(){cout <<"B构造函数执行"};
~MyTestB(){cout <<"B析构函数执行"};
};
int main()
{
MyTestA a;
MyTestB b;
return 0;
}
最后的结果是:
A构造函数执行
B构造函数执行
B析构函数执行
A析构函数执行
展开全部
#include "iostream.h"
class test{
public:
test();
~test();
};
test::test()
{
cout<<"constructor"<<endl;
}
test::~test()
{
cout<<"destructor"<<endl;
}
void main()
{
test Test;
}
class test{
public:
test();
~test();
};
test::test()
{
cout<<"constructor"<<endl;
}
test::~test()
{
cout<<"destructor"<<endl;
}
void main()
{
test Test;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你们帮楼主写是害了他!!!三楼的答案很好了,楼主还要怎么写??要不要把工程文件发给你!?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询