用*, 表示创建的是一个指针对象,而指针的创建,必须初始化,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. day52—JavaScript拖拽事件的应用(自定义滚动条)

    转行学开发,代码100天——2018-05-07 前面的记录里展示了JavaScript中鼠标拖拽功能,今天利用拖拽功能实现另一个应用场景——自定义滚动条(作为控制器)的用法. 常通过自定义滚动条控制 ...

  2. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第8节 Math类_18_数学工具类Math

    常用几个数学的方法 abs绝对值 ceil向上取整,它并不是四舍五入 floor向下取整 round四舍五入 PI 按住Ctrl+鼠标左键 进入Math这个类的源码里面 Ctrl+F12 然后输入PI ...

  3. 测开之路一百零八:bootstrap表格

    引入bootstrap和jquery 普通表格 html自带的边框线 bootstrap表格属性 bootstrap表格 边框线 鼠标经过变色 压缩表格,减小密度 自适应屏幕 隔行突出(变色) 表格里 ...

  4. oracle--高级使用(merge)(递归START WITH)分析函数over

    1.俩种表复制语句 SELECT INTO和INSERT INTO SELECT两种表复制语句 CT: create table <new table> as select * from ...

  5. 第七周实验报告&课程总结

    一.完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)10个窗口同时开始卖票: (3)卖票过程延时1秒钟: (4)不能出现一票多卖或卖出负数号票的情况. 代码: public cla ...

  6. <每日一题> Day4:CodeForces-1042A.Benches(二分 + 排序)

    题目链接 参考代码: /* 排序 + 每次取小 #include <iostream> #include <algorithm> using namespace std; co ...

  7. [BZOJ5099]Pionek

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

  8. F. Fixing Banners

    http://codeforces.com/gym/102394/problem/F F. Fixing Banners time limit per test 1 second memory lim ...

  9. Lpl and Energy-saving Lamps

    During tea-drinking, princess, amongst other things, asked why has such a good-natured and cute Drag ...

  10. POJ-2528 Mayor's posters (离散化, 线段树)

    题目传送门: POJ-2528 题意就是在一个高度固定的墙面上贴高度相同宽度不同的海报,问贴到最后还能看到几张?本质上是线段树区间更新问题,但是要注意的是题中所给数据范围庞大,直接搞肯定会搞出问题,所 ...