C++初步 2
对象数组:
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的更多相关文章
- 移动端之Android开发的几种方式的初步体验
目前越来越多的移动端混合开发方式,下面列举的大多数我都略微的尝试过,就初步的认识写个简单的心得: 开发方式 开发环境 是否需要AndroidSDK 支持跨平台 开发语言&技能 MUI Win+ ...
- CSharpGL(29)初步封装Texture和Framebuffer
+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...
- Android自定义View初步
经过上一篇的介绍,大家对于自定义View一定有了一定的认识,接下来我们就以实现一个图片下显示文字的自定义View来练习一下.废话不多说,下面进入我们的正题,首先看一下我们的思路,1.我们需要通过在va ...
- 初步认识Node 之Node为何物
很多人即便是在使用了Node之后也不知道它到底是什么,阅读完本文你应该会有一个初步的.具体的概念了. Node的目标 提供一种简单的构建可伸缩网络程序的方法.那么,什么是可伸缩网络程序呢?可伸缩 ...
- [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)
[入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date 周六 10 一月 2015 By 钟谢伟 Category website develop ...
- 基于C/S架构的3D对战网络游戏C++框架_05搭建系统开发环境与Boost智能指针、内存池初步了解
本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...
- Azure底层架构的初步分析
之所以要写这样的一篇博文的目的是对于大多数搞IT的人来说,一般都会对这个topic很感兴趣,因为底层架构直接关乎到一个公有云平台的performance,其实最主要的原因是我们的客户对此也非常感兴趣, ...
- CozyRSS开发记录14-RSS源管理初步完工
CozyRSS开发记录14-RSS源管理初步完工 1.添加源的响应 DialogHost.Show有几个版本的重载,加一个DialogClosingEventHandler参数.我们让添加源对话框的添 ...
- 初步了解CPU
了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. ...
- Windows多线程多任务设计初步(转)
Windows多线程多任务设计初步 [前言:]当前流行的Windows操作系统,它能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程 ...
随机推荐
- 关于import引入的方式
引入第三方插件 import vue from 'vue' 按需求引入 import { myaxios } from './util'; 下面是写法,需要export导出 export functi ...
- git工具——对比文件的不同
对比工作区和某个版本中文件的不同: (1)继续编辑文件code.txt,在其中添加一行内容: (2)现在要对比工作区中code.txt和head版本中code.txt的不同,使用如下命令: 前面没有出 ...
- SQL server 数据库中插入中文变???格式乱码的问题另一种容易忽略的情况(C#操作dapper)
1.先查查 VS2015 中的XXX.cs页面中编码格式,记事本打开另存一下,编码格式可能是ANSI改为unioncode. (中文前面加N或者改排序规则解决不了的情况有可能是以上原因.)
- Decode String
Given an encoded string, return it's decoded string.The encoding rule is: k[encoded_string], where t ...
- CSScript 使用纪要
CSScript 运行C#脚本的开源项目,在笔者简要使用过程中,遇到了一些问题,现简单记录. 1. CS0433 使用非基本类型 当遇到 CS0433错误,提示 type is defined mul ...
- Nginx配置SSL证书部署HTTPS方法
1.申请域名,绑定服务器ip(我申请的是阿里云服务器,以下就此为例) 2.可以在阿里云上免费申请SSL证书(下载证书,后续会用到) 3.在服务器中配置证书 在服务器上安装Nginx 将下载好的证书上传 ...
- oracle 计算机改名后监听无法启动
oracle改计算机名后,简单办法是利用oracle自带监听配置重新配置一下,或者修改host.listner.ora.tnsname.ora.我改了没起作用,原来是因为加入了域,计算机名字要全名的.
- 【NLP】依存句法关系符号解释
今天开始读一篇论文:leveraging linguistic structure for open domain information extraction 于是……重新复习了很多句法分析的内容, ...
- 爬虫 解析库re,Beautifulsoup,
re模块 点我回顾 Beautifulsoup模块 #安装 Beautiful Soup pip install beautifulsoup4 #安装解析器 Beautiful Soup支持Pytho ...
- Python爬虫基础之lxml
一.Python lxml的基本应用 <html> <head> <title> The Dormouse's story </title> </ ...