用*, 表示创建的是一个指针对象,而指针的创建,必须初始化,C++中用new关键字开辟内存。

另外指针对象访问成员变量用-> , 非指针用. 就这么个原则

但是指针也可以不用-> 例如 (*p).age  所以->其实就是先*后.的简写吧

#ifndef MyArray_hpp
#define MyArray_hpp #include <stdio.h> class MyArray { public:
MyArray();
MyArray(int capacity);
MyArray(const MyArray& array); ~MyArray(); //尾插法
void push_Back(int val); //根据索引获取值
int getData(int index); //根据索引设置值
void setData(int index,int val); private:
int *pAdress;
int m_Size;
int m_Capacity; }; #endif /* MyArray_hpp */
#include "MyArray.hpp"
#include <iostream>
using namespace std; MyArray::MyArray()
{
this->m_Capacity = ;
this->m_Size = ;
this->pAdress = new int[this->m_Capacity];
} MyArray::MyArray(int capacity){
this->m_Capacity = capacity;
this->m_Size = ;
this->pAdress = new int[this->m_Capacity];
} MyArray::MyArray(const MyArray& array){ this->pAdress = new int[array.m_Capacity];
this->m_Size = array.m_Size;
this->m_Capacity = array.m_Capacity;
} MyArray::~MyArray(){ cout << "析构函数调用" << endl;
if (this->pAdress != NULL) {
delete [] this->pAdress;
this->pAdress = NULL;
} } void MyArray::push_Back(int val){
this->pAdress[this->m_Size] = val;
this->m_Size++;
} int MyArray::getData(int index){
return this->pAdress[index];
} void MyArray::setData(int index, int val){
this->pAdress[index] = val;
}
void test01(){

    MyArray *array1 = new MyArray();
//(MyArray *) array1 = 0x0000000100648440 MyArray array2;
/*
{
pAdress = 0x0000000100649240
m_Size = 0
m_Capacity = 100
}
*/
MyArray array = MyArray();
/*
{
pAdress = 0x000000010064b680
m_Size = 0
m_Capacity = 30
}
*/
}

这位老师说的很细 https://blog.csdn.net/qq_35644234/article/details/52702673

C++创建对象时什么时候用*,什么时候不用*的更多相关文章

  1. C++之创建对象时的new与不new

    C++在创建对象的时候可以采用两种方式:(例如类名为Test) Test test  或者 Test* pTest = new Test(). 这两种方法都可以实例化一个对象,但是这两种方法有很大的区 ...

  2. 创建对象时引用的关键字,assign,copy,retain

    创建对象时引用的关键字:assign: 简单赋值,不更改索引计数(强引用)copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索 ...

  3. C#创建对象时各种初始化属性、字段的方式的执行顺序

    创建对象代码如下: new FilterInfo(Student.CreateTimeProperty,"朱七",Express.Equals,Relationship.Or) { ...

  4. 编写高质量代码改善C#程序的157个建议——建议10: 创建对象时需要考虑是否实现比较器

    建议10: 创建对象时需要考虑是否实现比较器 有对象的地方就会存在比较,在.NET的世界中也一样.举个最简单的例子,在UI中,有一个10个人的Salary列表.根据排序的需要,列表要支持针对基本工资来 ...

  5. C#程序编写高质量代码改善的157个建议【10-12】[创建对象时需要考虑是否实现比较器、区别对待==和Equals]

    前言 建议10.创建对象时需要考虑是否实现比较器 建议11.区别对待==和Equals 建议12.重写Equals时也要重写GetHashCode 建议10.创建对象时需要考虑是否实现比较器 有对象的 ...

  6. 对spring创建对象时为何要使用接口

    对spring创建对象时为何要使用接口,而使用接口的实现类会报错 接上一篇问题的解答:Spring AOP获取不了增强类(额外方法)和无法通过getBean()获取对象 此问题发生在动态代理时,比如对 ...

  7. 用构造函数创建对象时的this的指向问题

    用构造函数方式创建对象: function Person(name,age){ this.name=name; this.age=age; this.sayname=function(){ alert ...

  8. Object-C使用类静态方法创建对象时容易内存泄露

    1.所谓使用类的静态方法创建对象,就是指使用类名调用一次它的静态方法(非显式调用alloc)便可以得到一个新建的对象,比如下面两个例子: NSString* str1 = [NSString stri ...

  9. Java中string 创建对象时 “”和null的差别

    null和""的差别 问题一: null和""的差别 String s=null; string.trim()就会抛出为空的exception String s ...

随机推荐

  1. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第4节 ArrayList集合_16-ArrayList练习一_存储随机数

    循环6次就是6.fori 循环子在外部+1就是得到的1到33的数字 list.fori遍历集合 自动生for循环的代码

  2. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第4节 ArrayList集合_17-ArrayList练习二_存储自定义

    分析题目和解题思路 先来新建学生类.定义两个成员变量,后面进行代码的生成 遍历集合

  3. CSS3------box-shadow,即单边阴影效果设置

    box-shadow修改元素的阴影效果要方便得多,因为box-shadow可以修改六个参数,得到不同的效果.下面结合一些简单的案例来对box-shadow属性进行演示说明. 1.单边阴影效果 定义元素 ...

  4. Selenium WebDriver 数据驱动测试框架

    Selenium WebDriver 数据驱动测试框架,以QQ邮箱添加联系人为示例,测试框架结构如下图,详细内容请阅读吴晓华编著<Selenium WebDiver 实战宝典>: Obje ...

  5. sprint test 添加事务回滚机制

    1.原因: 单元测试的时候频繁操作数据库需要修改很多数据,造成不必要的操作,添加事务之后就可以重复对一条数据进行操作,并且在返回结果后进行回滚. 2.解决: 原先继承的是  AbstractJUnit ...

  6. 【MM系列】SAP MM-模块物料主数据简介

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM-模块物料主数据简介   ...

  7. Redis数据类型:Sorted Sets操作指令

    Redis数据类型:Sorted Sets操作指令 Sorted Sets常用操作指令 Sorted Sets,本质是一个有序的Sets,其实在原来的Sets集合中对每一个元素新增了一个属性Score ...

  8. 通过挂载系统U盘搭建本地yum仓库

    首先打开hbza(CentOS)和yum,两者要连接上 第1步:在hbza中创建一个目录 输入mkdir /lxk,名字随便起.输入mount  /dev/cdrom  /lxk 第2步:打开yum, ...

  9. [BZOJ5099]Pionek

    Description 给 \(n\) (\(n\le 2\times 10 ^5\)) 个向量,现在你在 \((0,0)\) ,选择一些向量使你走的最远. Solution 自己的想法:按极角排序后 ...

  10. SCUT - 153 - 小马哥和他的山脉 - 线段树

    https://scut.online/p/153 其实不需要用线段树,只关心相邻元素的差,像神仙那样用差分就可以O1维护的. 但是我偏要用. 交之前写的那个,注意没有st本身的线段树只有lazy标记 ...