#include<iostream>
#include <memory>
using namespace std;
class Base;
void Test(Base* const &obj);
class Base
{
public:
Base():m_value(5)
{
std::cout << "create" << std::endl;
}
~Base()
{
}
Base(const Base &obj)
{
std::cout << "copy" << std::endl;
}
Base& operator=(const Base &obj)
{
std::cout << "==" << std::endl;
return *this;
}
void TestTest()
{
Test(this);
int i = 5 + 6;
}
void SetA(int value)
{
m_value = value;
}
private:
int m_value;
};
void Test(Base* const &obj)
{
obj->SetA(9);
}
int main()
{
Base objB;
Base objC(objB);
Base objD;
objD = objB;
Base* pb = new Base();
//pb->TestTest();
Base* pc = new Base(*pb); //拷贝构造
Base* pd = new Base();
*pd = *pb; //必须使用指针对象赋值构造
delete pb;
delete pc;
delete pd;
return 0;
}
注:类的