很多次,我在C++代码指针中看到了结构的分配;
struct Current{
int amp;
};
Current *cur = new Current();
Run Code Online (Sandbox Code Playgroud)
但是,"Current"是一个结构而不是类,但在C++中受支持.如何使用它来代替C类型分配,如下所示:
Current *cur = (Current*) malloc (sizeof(Current));
Run Code Online (Sandbox Code Playgroud)
这背后的基本概念是什么?我所知道的是,"结构"在C++中被认为是"类".
已知C++中struct-VS-class的概念.查询主要是关于具体的用例,因为两者都是允许的,但是应该优先考虑,为什么?
在C++中,a struct与a相同class,除了它具有默认public成员以及默认public继承.
至于使用malloc它,虽然可以使用它,但就像你说的a C-type分配一样,不应该用它C++.如果必须,您将对malloc/free结构使用与对类相同的方式.
但是,正确的C++方法是使用new和delete,对于a也使用相同struct的方法class.
如果你很好奇为什么 new/delete要用它而不是 malloc/free,我推荐你这个Q/A:在什么情况下我使用malloc vs new?
至于括号的使用,即:
Current *cur = new Current();
//vs.
Current *cur = new Current;
Run Code Online (Sandbox Code Playgroud)
我只是做了自己,并学到了新的东西.
| 归档时间: |
|
| 查看次数: |
214 次 |
| 最近记录: |