一个只能在栈中分配空间和一个只能在堆中分配的类
2008-11-25 11:09
489 查看
题目:编写C++中的两个类要求:一个只能在栈中分配空间 一个只能在堆中分配源代码#include "stdafx.h"
#include <iostream>
using namespace std;
class CHeapOnly
{
public:
CHeapOnly()
{
cout << "Constructor() of CHeapOnly!" << endl;
}
public:
void Destroy() const
{
delete this;
}
private:
~CHeapOnly()
{
cout << "Destructor of CHeapOnly!" << endl;
}
};
class CStackOnly
{
public:
CStackOnly()
{
cout << "Constructor of CStackOnly!" << endl;
}
~CStackOnly()
{
cout << "Destrucotr of CStackOnly!" << endl;
}
private:
void* operator new(size_t)
{
}
};
int main()
{
//use of CHeapOnly
CHeapOnly* pHeap = new CHeapOnly;
pHeap->Destroy();
//err use of CHeapOnly
//CHeapOnly objHeap;
//use of CStackOnly
CStackOnly objStack;
//error use of CStackOnly
//CStackOnly* pStack = new CStackOnly;
return 0;
}
#include <iostream>
using namespace std;
class CHeapOnly
{
public:
CHeapOnly()
{
cout << "Constructor() of CHeapOnly!" << endl;
}
public:
void Destroy() const
{
delete this;
}
private:
~CHeapOnly()
{
cout << "Destructor of CHeapOnly!" << endl;
}
};
class CStackOnly
{
public:
CStackOnly()
{
cout << "Constructor of CStackOnly!" << endl;
}
~CStackOnly()
{
cout << "Destrucotr of CStackOnly!" << endl;
}
private:
void* operator new(size_t)
{
}
};
int main()
{
//use of CHeapOnly
CHeapOnly* pHeap = new CHeapOnly;
pHeap->Destroy();
//err use of CHeapOnly
//CHeapOnly objHeap;
//use of CStackOnly
CStackOnly objStack;
//error use of CStackOnly
//CStackOnly* pStack = new CStackOnly;
return 0;
}
相关文章推荐
- 编写C++中的两个类 一个只能在栈中分配空间 一个只能在堆中分配。
- 编写C++中的两个类 一个只能在栈中分配空间 一个只能在堆中分配
- 编写C++中的两个类 一个只能在栈中分配空间 一个只能在堆中分配
- 编写C++中的两个类 一个只能在栈中分配空间 一个只能在堆中分配
- [面试] 编写C++中的两个类 一个只能在栈中分配空间 一个只能在堆中分配 (Very Good! tx)
- 编写C++中的两个类 一个只能在栈中分配空间 一个只能在堆中分配(腾讯2012面试题)
- [面试] 编写C++中的两个类 一个只能在栈中分配空间 一个只能在堆中分配 (Very Good! tx)
- 【转】C++怎么设计只能在堆或者栈分配空间的类以及定义一个不能被继承的类
- 如何让对象只在堆或者栈中分配空间ANDC++禁止一个类被继承
- 数组不是指针——数组地址不能动态分配空间,一个小例子关于指针移动,以及malloc
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 两个指针指向同一个由malloc分配的空间,free掉一个问题
- 只能在堆上分配空间的类和只能在栈上分配空间的类
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 定义一个结构体指针需要分配存储空间?
- synthesize只有一个变量指针 不会分配空间
- C++:编写一个程序,用动态分布分配空间的方法计算Fibonacci数列的前二十项并存储到动态分布的空间中
- 堆和栈,malloc分配的空间是堆,局部变量都在栈中
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。 提交
- C++中对已分配空间的指针调用一个类的构造函数