共享指针还可以有引用类型?

Never妥协 2019-11-06 02:50:21
刚才在看这段代码的时候,有点疑惑,prof不是一个共享指针吗,第二段代码的第二行送进去然后给了第一段的adv共享指针,这个是左值引用?指针类型还可以左值引用吗?
Student(const string &sname, Discipline d,const shared_ptr<Person> &adv) :Person(sname), major(d), advisor(adv) {}

shared_ptr<Faculty> prof = make_shared<Faculty>("Indiana Jones", Discipline::ARCHE0LOGY);
shared_ptr<Student> st = make_shared<Student>("Sean Bolster", Discipline::ARCHE0LOGY, prof);
...全文
122 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Never妥协 2019-11-06
  • 打赏
  • 举报
回复
引用 1 楼 SuperDay 的回复:
可以的,你把它当成一个类就可以了
这么看来这种情况是智能指针所独有的了。。
#include<iostream>
using namespace std;
void kk(shared_ptr<int> &y)
{
	cout << *y << endl;
}
void kk(unique_ptr<int> &y)
{
	cout << *y << endl;
}
//void kk(int& *ptr)
//{

//}

int main()
{
	int y = 7;
	shared_ptr<int> x = make_shared<int>(y);
	unique_ptr<int> z = make_unique<int>(y);
	
	int *p = &y;
	kk(x);
	kk(z);
	//kk(p);
	return 0;
}
铖邑 2019-11-06
  • 打赏
  • 举报
回复
可以的,你把它当成一个类就可以了

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧