相关疑难解决方法(0)

是否可以防止对象的堆栈分配,并且只允许使用"new"实例化它?

是否有可能阻止对象的堆栈分配,并且只允许在堆上使用"new"进行隔离?

c++ c++-faq

50
推荐指数
4
解决办法
1万
查看次数

是否有可能将Haskell不透明地嵌入到C库中?

是否可以将Haskell代码嵌入到C库中,以便库的用户不必知道正在使用Haskell?特别是,这样用户可以使用多个嵌入Haskell的库,而不会有任何冲突?

据我所知,你在hs_init和hs_exit的调用之间嵌入,但这些涉及全局状态恶作剧,应该与其他调用冲突,不是吗?

haskell

18
推荐指数
1
解决办法
2751
查看次数

C++ Puzzle:防止派生类的堆分配,允许自动和静态

目标:

  1. Base类的对象可以是静态的,自动的,直接在堆上分配,并参与任何地方分配的复合对象
  2. 对于任何具有Base作为可访问祖先的Derived类,对象可以是静态的或自动的并参与复合,但可能不会直接在堆上分配

例:

#include "Base.h"
#include "Derived.h"

{
    static Base sb;              // OK
    Base ab, *hb = new Base;     // OK
    static Derived sd;           // OK
    Derived ad;                  // OK
    Derived *pd = &ad;           // OK
    Derived *hd = new Derived;   // Compile error, link error, 
                                 // test-unit exception, or lint gripe
    struct Composite {
        Base cb;
        Derived cd;
    } *hc = new Composite;       // OK 

    // Edit to show side-effects of solutions which hide Base::operator new. …
Run Code Online (Sandbox Code Playgroud)

c++

7
推荐指数
1
解决办法
2468
查看次数

为什么我会在堆中禁止分配?

我最近读了很多关于"防止一个类的堆分配"(参见这个问题).

我能够理解"如何",但现在我无法弄清楚"为什么"有人愿意这样做.

我想这一定有合理的理由,但我无法弄明白.

简而言之:"为什么我要禁止用户在堆中创建我的类的对象?"

c++ heap stack memory-management class

5
推荐指数
2
解决办法
837
查看次数

标签 统计

c++ ×3

c++-faq ×1

class ×1

haskell ×1

heap ×1

memory-management ×1

stack ×1