对象成员指针学习到的一些感想
来源:互联网 发布:网络借贷暂行办 编辑:程序博客网 时间:2024/06/01 18:34
先贴上代码
demo.cpp
#include<iostream>#include<stdlib.h>#include"Line.h"using namespace std;int main(){Line *p=new Line(1,2,3,4);delete p;p=NULL;system("pause");return 0;}
Line.h
#include"Coordinate.h"class Line{public:Line(int x1,int y1,int x2,int y2);~Line();void printInfo();private:Coordinate *m_pCoorA;Coordinate *m_pCoorB;};
Line.cpp
#include<iostream>#include"Line.h"using namespace std;Line::Line(int x1,int y1,int x2,int y2):m_pCoorA(new Coordinate(x1,y1)),m_pCoorB(new Coordinate(x2,y2)){cout<<"Line()"<<endl;}Line::~Line(){delete m_pCoorA;m_pCoorA=NULL;delete m_pCoorB;m_pCoorB=NULL;cout<<"~Line()"<<endl;}void Line::printInfo(){cout<<"printInfo()"<<endl;cout<<"("<<m_pCoorA->getX()<<","<<m_pCoorA->getY()<<")"<<endl;cout<<"("<<m_pCoorB->getX()<<","<<m_pCoorB->getY()<<")"<<endl;}
Coordinate.cpp
#include"Coordinate.h"#include<iostream>using namespace std;Coordinate::Coordinate(int x,int y){m_iX=x;m_iY=y;cout<<"Coordinate()"<<m_iX<<","<<m_iY<<endl;}Coordinate::~Coordinate(){cout<<"~Coordinate"<<m_iX<<","<<m_iY<<endl;}int Coordinate::getX(){return m_iX;}int Coordinate::getY(){return m_iY;}
Coordinate.h
class Coordinate{public:Coordinate(int x,int y);~Coordinate();int getX();int getY();private:int m_iX;int m_iY;};
有几个我学习之后觉得要注意的点
1、如果一个类里面含有对象成员指针,其实按部就班来写就好了,在构造函数里面进行new,在析构函数里面注意释放和赋值NULL
其实在构造函数那里还应该判断new出来成功与否
2、对象成员指针和对象成员不一样,对象成员必须使用初始化列表来进行初始化,但是对象成员指针就不一样了,它可以在初始化列表里面初始化也可以在构造函数内进行初始化
3、如果使用初始化列表,要有()等价于=的概念
什么意思呢?
Line::Line(int x1,int y1,int x2,int y2):m_pCoorA(new Coordinate(x1,y1)),m_pCoorB(new Coordinate(x2,y2))这一句话,其实我一开始写的是
m_pCoorA=new Coordinate(x1,x2)......
但其实我是还没有熟悉初始化列表的使用
()等价于=的概念非常重要,我需要多多熟悉
阅读全文
0 0
- 对象成员指针学习到的一些感想
- 学习javascript的一些感想
- 学习java的一些感想
- 学习C++的一些感想
- 指向对象成员的指针
- 指向对象成员的指针
- 指针、内存与对象的指针成员
- C++学习之对象成员指针篇
- 学习ARM高级应用的一些感想
- 0基础学习iOS的一些感想
- 学习Android编程的一些感想
- 日记--学习Groovy的一些感想
- 关于学习java多线程的一些感想
- C++对象指针—指向对象成员的指针
- 对象指针—指向对象成员的指针
- 使用对象指针访问类的成员
- 指向对象的指针访问成员函数
- C++:指向对象成员函数的指针
- Android Studio CheckStyle配置
- Android Framework层Power键关机流程
- Android Camera2 拍照(二)——使用TextureView
- 你也可以自己写一个可爱 & 小资风格的Android加载等待自定义View
- 移动端适配rem
- 对象成员指针学习到的一些感想
- hibernate 级联添加
- easyui开发平台
- 搭建Hadoop分布式集群------SSH无密码验证配置
- JavaScript页面调用C#后台方法或访问参数
- SSH Secure Shell File Transfer 突然打不开
- 源码部署LNMP
- 读《程序员》2017年7期
- sprint敏捷开发