对象数组:

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. 题解:[GXOI/GZOI2019]与或和

    开始完全没思路 在洛谷看到样例一,突发奇想,决定先做一下元素只有0/1的情况 发现子任务1是全1子矩阵 子任务2是总子矩阵个数减去全0子矩阵 发现全0/1矩阵可以构造单调栈解决.具体做法:前缀和求出每 ...

  2. 关于微信emoji 表情数据库存不了,或者显示为???的问题

    必须我utf8mb4,数据库就可以存 2. 数据库连接也需要是utf8mb4

  3. 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...

  4. 读spring源码(一)-ClassPathXmlApplicationContext-初始化

    工作来几乎所有的项目都用到了spring,却一直没有系统的读下源码,从头开始系统的读下吧,分章也不那么明确,读到哪里记到哪里,仅仅作为个笔记吧. 先看ClassPathXmlApplicationCo ...

  5. ELK全Dokcer 部署

    环境准备: docker-complete 解压 su root 进入目录 rpm -Uvh *.rpm 安装docker systemctl start docker systemctl enabl ...

  6. 如果想让某个块状元素右对齐,脑子里不要就一个float:right,很多时候,margin-left:auto才是最佳的实践

  7. 如何获取AWS的Access Key ID 和 Secret Access Key (Unable to find credentials)

    获取AWS的Access Key ID 和 Secret Access Key 是你可以访问AWS的依据,比如S3的“使用预签名 URL 上传对象”. 1.登录AWS控制台 2.在“AWS servi ...

  8. Maven Install报错:Perhaps you are running on a JRE rather than a JDK?

    我用的是idea,解决办法是:安装jdk,配置环境变量

  9. NOIP2018Day1T1 铺设道路

    题目描述 春春是一名道路工程师,负责铺设一条长度为 \(n\) 的道路. 铺设道路的主要工作是填平下陷的地表.整段道路可以看作是 \(n\) 块首尾相连的区域,一开始,第 \(i\) 块区域下陷的深度 ...

  10. TensorFlow object detection API

    cloud执行:https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/running_pet ...