C++——创建及访问动态对象
2021-02-14 01:16
标签:成员 编译 using name span 类型比较 length 程序 nbsp 在此之前我们创建一个对象的语法是: 现在我们想要动态的创建对象,还是要使用到关键字new。语法如下: 与之前的方式还有一个区别在于,之前的方法返回的是一个对象,而现在返回的是Class类型的指针,这个指针指向所创建对象的位置。因此,如果我们想要使用这个对象,就先要使用解引用运算符(*)先获取到对象,再使用点操作符(.)来操作对象的属性和方法。 运行结果: 但是这样一来,似乎显得有些麻烦,必须要先解引用得到对象本身才可以操作。因此,C++提供了一个成员选择操作符("->",一个短划线"-"后面跟一个大于号">"),它的作用就在于简化指针访问对象成员。如上面的例子中的: 可以写为: 说到这里,还没有说为什么要动态创建对象。你可能会说,这样创建不就是使用了new吗?和原来没什么区别啊? 其中的奥妙就在于new这个关键字上。我们知道new这个关键字会动态的分配一段内存空间,而这是之前静态创建对象无法做到的。也就是说,静态创建对象的内存不是由程序员来管理的,而是在编译的过程中完成的。但是动态的不一样了,它是在运行时完成的,我们可以动态的管理它的内存空间。 如果一个程序静态创建了10000个对象,那么可能内存就不够用了,因为没有办法去销毁他们。但是使用动态的方式,我们就可以即时delete掉,减少内存的负担。 还有一点是,如果用户想要在运行时创建对象,那么就只能使用动态创建对象的方式。这和之前我们动态创建一个数组的内存空间类似。 C++——创建及访问动态对象 标签:成员 编译 using name span 类型比较 length 程序 nbsp 原文地址:https://www.cnblogs.com/bwjblogs/p/12725378.html创建动态对象
Class object(arguments);
//Class是类名
//object是对象
//(arguments)是传入的参数,这一部分可以没有
//无参构造函数
ClassName* pObject = new ClassName;
//无参构造函数也可以写为:
//ClassName* pObject = new ClassName();
//有参构造函数
ClassName* pObject = new ClassName(arguments);访问动态对象
//string相比其他的基本数据类型比较特殊,C++中的string本身就是一个类
//为了方便,我们直接使用string类
#include
cout "字符串的长度为:"
cout "字符串的长度为:" length()
为什么要动态创建对象
上一篇:java中的计数排序算法