栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++ 11学习心得(一)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++ 11学习心得(一)

1.概述
c++ 语言有有是十多年没有更新了,c++ 11出来后,使得c++这门语言多了很多特性,auto的出现、智能指针、多线程、lambda函数等。这些特性的出现使得c++这门语言的代码看起来更加的便捷和简单。
2 auto类型
auto类型的出现使得定义变量的时候更加方便。Python语言之所以最近比较火,是因为其语言的简便性、易学性。比如,Python语言中,变量是从来不用申明的。
a=1 name='xiaoming'
当时写python代码时就觉得很方便,时常在想,什么时候c++语言可以这么方便就好了。当学习C++11的时候,了解了auto类型,总算可以随心所欲的定义,不用考虑int ,float,double之类的。

auto a=1;//auto自动将a转换为int类型。
auto name="xiaoming";//auto自动将name转化为string字符串。

3.智能指针
c++之所以不收很多人欢迎,是因为使用指针可能带来的一系列问题,内存泄漏、悬浮指针等。智能指针的出现,就避免了这些问题。智能指针,主要有三种指针,unique_ptr、shared_ptr、weak_ptr。
3.1unique_ptr
当使用unique_ptr的时候,指针指向的对象不能被其他指针共享了,即不能拷贝了。

unique_ptr up1(new int(11));
unique_ptr up2=up1;//这里会报错。编译通过不了。

但是,可以通过move函数进行转移,当move函数转移之后,原来的指针会失去对象空间的所有权。

3.2shared_ptr和weak_ptr
shared_ptr指针可以与其他指针共享对象内存空间,其原理是,采用引用计数,每当一个shared指针指向对象内存时,计数就加1,每当对象内存的指针释放一个,计数就减1,直到0,就释放对象空间。
weak_ptr指针可以通过lock函数指向shared_ptr指针的对象空间,看是weak_ptr指针不会影响shared_ptr的引用次数。

//因为字数限制,没有放全部代码,少了Checkptr()函数定义和头文件
int main() {
	shared_ptr sp1(new int(666));
	shared_ptr sp2;
	sp2 = sp1;
	weak_ptr wp = sp1;
	cout << *sp1 << endl;
	cout << *sp2 << endl;
	Checkptr(wp);

	sp1.reset();

	cout << *sp2 << endl;
	Checkptr(wp);
	sp2.reset();

	Checkptr(wp);
	return 0;
}

下一篇:https://blog.csdn.net/zuimman/article/details/121538039?spm=1001.2014.3001.5501

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/589512.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号