秀杰空间

秀杰笔记
做些有意义的事情
  1. 首页
  2. Linux/Unix C/C++
  3. 正文

malloc的对象调用它的构造函数

2016年7月18日 3919点热度 0人点赞 0条评论

malloc只是申请指定空间的大小,主要是在C语言中会用到,在C++中,特别是在类中使用NEW才是申请一个

[code lang="cpp"]/*
* malloc.cpp
* 自己管理内存 malloc
* Created on: 2015年10月10日
* Author: LiXiujie
*/
#include <iostream>
class A{
public:
static A* Construct(int a){
A* pA = (A*)malloc(sizeof(struct A));
//pA->A::A(a);
std::cout << "A::Construct() malloc after()" << std::endl;
new(pA) A(a);
return pA;
}

static void Destruct(A* pA){
pA->A::~A();
free(pA);
}
void p(){
std::cout << m_nA << std::endl;
}
private:
A(int a){
std::cout << "A(int a)" << std::endl;
m_nA = a;
}
~A(){
m_nA = 0;
std::cout << "~A()" << std::endl;
}
int m_nA;
};

int main(int argc, char *argv[]){
A* pA = A::Construct(6);

pA->p();
A::Destruct(pA);
pA = A::Construct(99);
pA->p();
A::Destruct(pA);
return 0;
}

[/code]

标签: 暂无
最后更新:2016年7月19日

秀杰

做些有意义的事情

点赞
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2023 个人笔记. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

京ICP备11019155号-2