- #include <iostream>
- class MyClass
- {
- public:
- MyClass();
- ~MyClass();
- int m;
- char n;
- int getn(MyClass test)
- {
- return test.m + test.n;
- }
- int getm()
- {
- return m;
- }
- private:
- };
- MyClass::MyClass()
- {
- m = 10;
- n = 9;
- }
- MyClass::~MyClass()
- {
- }
- int main()
- {
- MyClass * test=new MyClass;
- test->m = 10;
- test->n = 9;
- }
测试用例
je 判断是不是等于 0 相当于在判断 创建的类对象是不是成功 等于失败 就在堆内申请内存 失败直接结束类创建
跳过执行构造函数的 call
00F71A9A mov dword ptr [ebp+FFFFFF0Ch],0 在 je 失败直接对 栈里 指针赋 0 了
浅拷贝和深拷贝问题记录在之前文章
对于构造函数的出现 可以猜测自己或者父类 有虚函数存在
先判断是否为 0 如果是 0 就不用清空了 如果是回去找 析构函数的表 去调用 new 创建的对象 都在堆上
来源: http://www.bubuko.com/infodetail-3798847.html