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操作系统,它能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程 ...
随机推荐
- 15行python代码,帮你理解令牌桶算法
本文转载自: http://www.tuicool.com/articles/aEBNRnU 在网络中传输数据时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀的速度向外发送,令牌桶算法 ...
- DBA_TABLES ALL_TABLES USER_TABLES
DBA_TABLES >= ALL_TABLES >= USER_TABLES DBA_TABLES意为DBA拥有的或可以访问的所有的关系表. ALL_TABLES意为某一用户拥有的或可以 ...
- codeforces 1151 B
codeforces 1151 B codeforces 1151 B 1600fen 题意:n*m的矩阵,问能否从n行中每行选一个数 异或 大于0 解析:刚开始看没思路,想用dfs跑一遍,看到 ...
- 拷贝本地文件到docker容器
查找所有容器 docker ps -a 查找容器长ID docker inspect -f '{{.ID}}' python 拷贝本地文件到容器 docker cp 本地路径 容器长ID:容器路径
- recurrent model for visual attention
paper url: https://papers.nips.cc/paper/5542-recurrent-models-of-visual-attention.pdf year: 2014 abs ...
- VS2017 性能优化方法
原文地址:https://www.cnblogs.com/mahatmasmile/p/10394168.html 出处1:https://docs.microsoft.com/zh-cn/visua ...
- Linux Shell下”>/dev/null 2>&1“相关知识说明
0:表示键盘输入(stdin)1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr) command >/dev/null 2>&1 & == ...
- Lesson 2-3(字符串)
2.5 字符串 --- 字符串是不可变的. >>> str = "Hello world!" >>> str[-6:-1] = "py ...
- python学习-抓取知乎图片
#!/bin/usr/env python3 __author__ = 'nxz' """ 抓取知乎图片webdriver Chromedriver驱动需要安装,并指定d ...
- memcpy一种实现方法
#include<stdio.h> #include<stdlib.h> void* memncpy(void* dest, const void* src, int coun ...