对象数组:

Coordinate coord[3];  栈区           Coordinate *p=new Coordinate[3];    堆区

/*
* Coordinate.h
*
* Created on: 2017年7月13日
* Author: rmbp
*/ class Coordinate
{
public:
Coordinate();
~Coordinate();
public:
int m_iX;
int m_iY;
}; /*
* Coordinate.cpp
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#include"Coordinate.h"
#include<iostream>
using namespace std; Coordinate::Coordinate()
{
cout<<"Coordinate"<<endl;
}
Coordinate::~Coordinate()
{
cout<<"~Coordinate"<<endl;
} #include <iostream>
#include <string>
#include "Coordinate.h"
using namespace std; int main(void)
{
Coordinate coor[];
coor[].m_iX=;
coor[].m_iY=; Coordinate *p=new Coordinate[];
p->m_iX=;
p[].m_iY=; p++; //第二个元素
p->m_iX=;
p[].m_iY=;//输出的是第二个元素 p[].m_iX=;
p++;
p->m_iY=; for(int i=;i<;i++)
{
cout<<coor[i].m_iX<<endl;
cout<<coor[i].m_iY<<endl;
}
for(int j=;j<;j++)
{
cout<<p->m_iX<<endl;
cout<<p->m_iY<<endl;
p--;
} p++;
delete []p;
p=NULL; return ;
}

对象成员:

/*
* Coordinate.h
*
* Created on: 2017年7月13日
* Author: rmbp
*/
class Coordinate
{
public:
Coordinate(int x,int y);
~Coordinate();
void setX(int x);
int getX();
void setY(int y);
int getY();
private:
int m_iX;
int m_iY;
};
/*
* Line.h
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#include"Coordinate.h"
class Line
{
public:
Line(int x1,int y1,int x2,int y2);
~Line();
void setA(int x,int y);
void setB(int x,int y);
void printInfo();
private:
Coordinate m_coorA;
Coordinate m_coorB;
};
/*
* Coordinate.cpp
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#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;
}
void Coordinate::setX(int x)
{
m_iX=x;
}
int Coordinate::getX()
{
return m_iX;
}
void Coordinate::setY(int y)
{
m_iY=y;
}
int Coordinate::getY()
{
return m_iY;
}
/*
* Line.cpp
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#include<iostream>
#include"Line.h"
using namespace std; Line::Line(int x1,int y1,int x2,int y2):m_coorA(x1,y1),m_coorB(x2,y2) //初始化列表
{
cout<<"Line"<<endl;
}
Line::~Line()
{
cout<<"~Line"<<endl;
}
void Line::setA(int x,int y)
{
m_coorA.setX(x);
m_coorA.setY(y);
}
void Line::setB(int x,int y)
{
m_coorB.setX(x);
m_coorB.setY(y);
}
void Line::printInfo()
{
cout<<"("<<m_coorA.getX()<<","<<m_coorA.getY()<<")"<<endl;
cout<<"("<<m_coorB.getX()<<","<<m_coorB.getY()<<")"<<endl;
} #include <iostream>
#include <string> #include "Line.h"
using namespace std; int main(void)
{
Line *p=new Line(,,,);
p->printInfo();
delete p;
p=NULL;
return ;
}

浅拷贝:

/*
* Array.h
*
* Created on: 2017年7月13日
* Author: rmbp
*/ #ifndef ARRAY_H_
#define ARRAY_H_
class Array
{
public:
Array();
Array(const Array &arr);
~Array();
void setCount(int count);
int getCount();
private:
int m_iCount;
}; #endif /* ARRAY_H_ */ /*
* Array.cpp
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#include"Array.h"
#include<iostream>
using namespace std;
Array::Array()
{
cout<<"Array"<<endl;
}
Array::Array(const Array &arr)
{
m_iCount=arr.m_iCount;
cout<<"Array &"<<endl;
}
Array::~Array()
{
cout<<"~Array"<<endl;
}
void Array::setCount(int count)
{
m_iCount=count;
}
int Array::getCount()
{
return m_iCount;
} #include <iostream>
#include <string> #include "Array.h"
using namespace std; int main(void)
{
Array arr1;
arr1.setCount(); Array arr2(arr1);
cout<<"arr2.m_iCount:"<<arr2.getCount()<<endl;
return ;
}

 

Array

Array&

arr2.m_iCount:5

~Array

~Array

深拷贝:


Array

Array &

0

1

2

3

4

0

1

2

3

4

~Array

~Array

对象指针:

/*
* Coordinate.h
*
* Created on: 2017年7月13日
* Author: rmbp
*/ class Coordinate
{
public:
Coordinate();
~Coordinate();
public:
int m_iX;
int m_iY;
}; /*
* Coordinate.cpp
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#include"Coordinate.h"
#include<iostream>
using namespace std;
Coordinate::Coordinate()
{
cout<<"Coordinate"<<endl;
}
Coordinate::~Coordinate()
{
cout<<"~Coordinate"<<endl;
} /*
* demo.cpp
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#include<iostream>
#include<stdlib.h>
#include"Coordinate.h"
using namespace std;
int main(void)
{
Coordinate *p1=NULL;
p1=new Coordinate;
Coordinate *p2=new Coordinate();
p1->m_iX=;
p1->m_iY=;
(*p2).m_iX=;
(*p2).m_iY=;
cout<<p1->m_iX+(*p2).m_iX<<endl;
cout<<p1->m_iY+(*p2).m_iY<<endl; delete p1;
p1=NULL;
delete p2;
p2=NULL;
return ;
}

Coordinate

Coordinate

40

60

~Coordinate

~Coordinate

对象成员指针:

/*
* Coordinate.h
*
* Created on: 2017年7月13日
* Author: rmbp
*/ class Coordinate
{
public:
Coordinate(int x,int y);
~Coordinate();
int getX();
int getY();
public:
int m_iX;
int m_iY;
};
/*
* Coordinate.cpp
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#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;
}
/*
* Line.h
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#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
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#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;
}
/*
* demo.cpp
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#include<iostream>
#include<stdlib.h>
#include"Line.h"
using namespace std;
int main(void)
{
Line *p=new Line(,,,);
p->printInfo();
delete p;
p=NULL;
cout<<sizeof(p)<<endl;
cout<<sizeof(Line)<<endl;
return ;
}

printInfo()

(1,2)

(3,4)

~Coordinate1,2

~Coordinate3,4

~Line()

8

16  //(64位结果,32位减半)

this指针: 

/*
* Array.h
*
* Created on: 2017年7月13日
* Author: rmbp
*/ class Array
{
public:
Array(int len);
~Array();
void setLen(int len);
int getLen();
void printInfo();
private:
int len;
};
/*
* Array.cpp
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#include"Array.h"
#include<iostream>
using namespace std;
Array::Array(int len)
{
this->len=len;
}
Array::~Array()
{ }
void Array::setLen(int len)
{
this->len=len;
}
int Array::getLen()
{
return len;
}
void Array::printInfo()
{ }
#include <iostream>
#include <string>
#include "Array.h"
using namespace std; int main(void)
{
Array arr1();
cout<<arr1.getLen()<<endl;
return ;
}
/*
* Array.h
*
* Created on: 2017年7月13日
* Author: rmbp
*/ class Array
{
public:
Array(int len);
~Array();
Array& setLen(int len);
int getLen();
Array& printInfo();
private:
int len;
};
/*
* Array.cpp
*
* Created on: 2017年7月13日
* Author: rmbp
*/
#include"Array.h"
#include<iostream>
using namespace std;
Array::Array(int len)
{
this->len=len;
}
Array::~Array()
{ }
Array& Array::setLen(int len)
{
this->len=len;
return *this;
}
int Array::getLen()
{
return len;
}
Array& Array::printInfo()
{
cout<<"len="<<len<<endl;
return *this;
}
#include <iostream>
#include <string>
#include "Array.h"
using namespace std; int main(void)
{
Array arr1();
arr1.printInfo().setLen().printInfo();
return ;
}

len=10

len=5

常对象成员和常成员函数:

常成员函数中不能修改数据成员的值。  func() const{}

常指针和常引用:

Coordinate coor1(3,5);

const Coordinate &coor2=coor1;  只能调用常函数

const Coordinate *pCoor=&coor1;

------------

Coordinate coor1(3,5);

Coordinate coor2(7,9);

Coordinate *const pCoor=&coor1;   //pCoor具有读写权限

C++初步 2的更多相关文章

  1. 移动端之Android开发的几种方式的初步体验

    目前越来越多的移动端混合开发方式,下面列举的大多数我都略微的尝试过,就初步的认识写个简单的心得: 开发方式 开发环境 是否需要AndroidSDK 支持跨平台 开发语言&技能 MUI Win+ ...

  2. CSharpGL(29)初步封装Texture和Framebuffer

    +BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...

  3. Android自定义View初步

    经过上一篇的介绍,大家对于自定义View一定有了一定的认识,接下来我们就以实现一个图片下显示文字的自定义View来练习一下.废话不多说,下面进入我们的正题,首先看一下我们的思路,1.我们需要通过在va ...

  4. 初步认识Node 之Node为何物

    很多人即便是在使用了Node之后也不知道它到底是什么,阅读完本文你应该会有一个初步的.具体的概念了.    Node的目标 提供一种简单的构建可伸缩网络程序的方法.那么,什么是可伸缩网络程序呢?可伸缩 ...

  5. [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)

    [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date  周六 10 一月 2015 By 钟谢伟 Category website develop ...

  6. 基于C/S架构的3D对战网络游戏C++框架 _05搭建系统开发环境与Boost智能指针、内存池初步了解

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

  7. Azure底层架构的初步分析

    之所以要写这样的一篇博文的目的是对于大多数搞IT的人来说,一般都会对这个topic很感兴趣,因为底层架构直接关乎到一个公有云平台的performance,其实最主要的原因是我们的客户对此也非常感兴趣, ...

  8. CozyRSS开发记录14-RSS源管理初步完工

    CozyRSS开发记录14-RSS源管理初步完工 1.添加源的响应 DialogHost.Show有几个版本的重载,加一个DialogClosingEventHandler参数.我们让添加源对话框的添 ...

  9. 初步了解CPU

    了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. ...

  10. Windows多线程多任务设计初步(转)

    Windows多线程多任务设计初步 [前言:]当前流行的Windows操作系统,它能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程 ...

随机推荐

  1. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

  2. 吴恩达《机器学习》编程作业——machine-learning-ex1:线性回归

    ❄❄❄❄❄❄❄❄[回到目录]❄❄❄❄❄❄❄❄ 本次编程作业中,需要完成的代码有如下几部分: [⋆] warmUpExercise.m - Simple example function in Octa ...

  3. python input()键盘输入8583报文带有\x单反斜杠自动转义问题解决办法

    用input()输入的字符串是8385报文比如:\x30\x30\x30\x30...,但是输入后,代码把8583报文字符串中多加了一个\,类似\\x30. 但是我把input()代码注释掉,把858 ...

  4. 中国交建 WAF 基础平台 http://waf.ccccltd.cn/

    中国交建  WAF 基础平台  http://waf.ccccltd.cn/

  5. LoadRunner脚本准备

    脚本录制1.启动LoadRunner2.打开VuGen在LoadRunner Launcher窗格中,单击创建/编辑脚本3.创建一个空白Web脚本在“新建虚拟用户”对话框里选择新建脚本的协议一般选择W ...

  6. Linux安装Discuz

    安装lamp环境 安装参考 安装Discuz 1.进入官网 2.进入Discuz! 程序发布 3.选择最新版本 4.进入git地址 5.克隆下载 5. 确认Apache中的DocumentRoot配置 ...

  7. Java 关于类的构造方法的一点认识

    2019年4月21日 星期天 在ORACLE官网上提供的The Java™ Tutorials中,有一节课Providing Constructors for Your Classes(为你的类提供构 ...

  8. windows10环境下的RabbitMQ安装步骤(图文)

    https://blog.csdn.net/weixin_39735923/article/details/79288578 记录下本人在win10环境下安装RabbitMQ的步骤,以作备忘. 第一步 ...

  9. vue-cli项目 build后请求本地static文件中的 json数据,路径不对,报错404处理方法

    vue-cli 项目 build  出错点: 1,build生成dist 放在tomcat上 报错,不显示内容  解决办法: config>index.js===>assetsPublic ...

  10. python-初识python

    一.计算机的初步认识 硬件:内存,主板,CPU,硬盘,显卡,显示器等 内存: 优点:存取速度快 缺点:断电后数据会全部丢失 硬盘: 优点:断电后数据也会永久保存 缺点:存取速度远远慢于内存 1.操作系 ...