#include
#include
#include
#include
class Student{
public:
Student(int d) : data(d){
printf("xxx------>line = %d, d = %dn",__LINE__,d);
}
int data;
};
int main(){
//1.general point ----> smart point
Student *stu = new Student(10);
std::shared_ptr ptr(stu);
//Or:
//std::shared_ptr ptr = std::make_shared(15);
printf("xxx------>line = %d, ptr->data = %dn",__LINE__,ptr->data);
//2.smart point ----> general point
Student *q;
//<1>
q = ptr.get();
//Or:
q = &(*ptr);
printf("xxx------>line = %d, q->data = %dn",__LINE__,q->data);
//3.make_shared ----> general point
Student *mm = std::make_shared(15).get();
printf("xxx------>line = %d, mm->data = %dn",__LINE__,mm->data);
return 0;
}