#include <iostream>
using namespace std;
/**************************************************************/
class Stack
{
public:
Stack(int n = 10)
{
cout<<"构造"<<endl;
_a=(int *)malloc(sizeof (int)*n);
_size = 0;
_capcity=n;
}
// Stack(const Stack & st)
// {
// Stack();
// _size=d
// }
~Stack()
{
cout<<"析构"<<endl;
free(_a);
_a=nullptr;
_size=_capcity=0;
}
private:
int *_a;
size_t _size;
size_t _capcity;
};
//自定义类型时传参数和返回值,在可以的情况下,尽量引用,减少拷贝构造
void test01()
{
Stack st;
}
/**************************************************************/
/***************************我们自己去实现拷贝构造与重载=的意义何在***********************************/
void test02()
{
//c++ 浅拷贝问题
/*
* st1 _a _size _capacity 指针共用同一个地址
* 析构时,会释放地址 一块地址不可以连续释放
* 自己去实现深拷贝与重载=等操作符号
*/
Stack st1;
Stack st2(st1);
}
/**************************************************************/
int main()
{
test01();
return 0;
}
c++ 学习05 类与对象
于 2024-05-08 21:17:51 首次发布