相关疑难解决方法(0)

用于在C++中初始化的memset

memset有时用于在构造函数中初始化数据,如下例所示.它一般有效吗?一般来说这是个好主意吗?

class A {
public:
   A();
private:
   int a;
   float f;
   char str[35];
   long *lp;
};

A::A()
{
   memset(this, 0, sizeof(*this));
}
Run Code Online (Sandbox Code Playgroud)

c++

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

如何在不破坏vtbl的情况下完成相当于memset(this,...)的操作?

我知道memset对class初始化不满意.例如,类似以下内容:

class X { public: 
X() { memset( this, 0, sizeof(*this) ) ; }
...
} ;
Run Code Online (Sandbox Code Playgroud)

vtbl如果virtual混合中有一个功能,它会破坏它.

我正在开发一个(巨大的)遗留代码库,它是C-ish但是用C++编译,因此所有成员都是POD,不需要传统的C++构造函数.C++的使用逐渐深入(比如虚函数),这就咬了开发人员没有意识到memset有这些额外的C++牙齿.

我想知道是否有一个C++安全的方法来进行初始的全部零初始化,然后可能会跟着特定的成员初始化,其中零初始化是不合适的?

我在C++中找到了用于初始化的类似问题memset,并使用memset将派生结构归零.这两个都有"不使用memset()"答案,但没有好的替代方案(特别是对于可能包含许多成员的大型结构).

c++ initialization

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

什么是胖接口?

Ciao,我在电影行业工作,模拟和应用工作室效果.我可以问一下什么是胖界面,因为我听到有人在网上说这个?

编辑:Nicol Bolas 在这里说(我相信非常好的指针)

c++

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

标签 统计

c++ ×3

initialization ×1