小编Ent*_*ian的帖子

在C++ 11中的析构函数后覆盖标识符

虚拟析构函数声明后的覆盖标识符是否有任何特殊含义?

class Base
{
public:
    virtual ~Base()
    {}

    virtual int Method() const
    {}
};

class Derived : public Base
{
public:
    virtual ~Derived() override
    {}

    virtual int Method() override // error: marked override, but does not override - missing const
    {}
};
Run Code Online (Sandbox Code Playgroud)

在虚方法上使用覆盖标识符作为检查非常有用:当Base虚方法实际上未被覆盖时,编译器将报告错误.

虚拟析构函数上的覆盖是否也有任何含义/功能?

c++ overriding virtual-destructor c++11

55
推荐指数
2
解决办法
3万
查看次数

如何使应用程序大地址感知?

我目前正在制作我们的应用程序大地址识别.经验表明,这样做有一些意想不到的陷阱.我创建这篇文章来制作一个需要采取的完整步骤列表.

AMD大地址识别指南中列出的开发注意事项提供了一个很好的起点,但绝不是完整的:

以下注意事项将有助于确保代码可以处理大于2GB的地址:

  • 避免使用带符号的指针算法(即比较和添加)
  • 指针使用所有32位.不要将Bit31用于其他方面.
  • 一些dll将在2GB边界下加载.在这种情况下,VirtualAlloc()不能分配连续的内存.
  • 尽可能使用GlobalMemoryStatusEx()(首选)或GlobalMemoryStatus()来检索内存大小.

因此,问题是:在制作C++ Win32本机应用程序大地址感知时需要完成哪些事情的完整列表?

c++ winapi visual-studio

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