您的位置:首页 > 其它

一个只能在栈中分配空间和一个只能在堆中分配的类

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐