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[3];
   coor[0].m_iX=3;
   coor[0].m_iY=5;

   Coordinate *p=new Coordinate[3];
   p->m_iX=7;
   p[0].m_iY=9;

   p++; //第二个元素
   p->m_iX=11;
   p[0].m_iY=13;//输出的是第二个元素

   p[1].m_iX=15;
   p++;
   p->m_iY=17;

   for(int i=0;i<3;i++)
   {
       cout<<coor[i].m_iX<<endl;
       cout<<coor[i].m_iY<<endl;
   }
   for(int j=0;j<3;j++)
   {
       cout<<p->m_iX<<endl;
       cout<<p->m_iY<<endl;
       p--;
   }

   p++;
   delete []p;
   p=NULL;

   return 0;
}

对象成员:

/*
 * 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(1,2,3,4);
    p->printInfo();
    delete p;
    p=NULL;
   return 0;
}

浅拷贝:

/*
 * 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(5);

   Array arr2(arr1);
   cout<<"arr2.m_iCount:"<<arr2.getCount()<<endl;
   return 0;
}

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco }

Array

Array&

arr2.m_iCount:5

~Array

~Array

深拷贝:

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco }

Array

Array &

0

1

2

3

4

0

1

2

3

4

~Array

~Array

时间: 2024-11-06 06:18:59

C++初步 2的相关文章

初步了解CPU

了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. 一.总述 先从计算机的结构说起,在现代计算机中,CPU是核心,常常被比喻为人的大脑.现在的计算机都为“冯·诺依曼机”,“冯诺依曼机”的一个显著的特点就是由运算器.存储器.控制器.输入设备和输出设备组成.CPU是运算器和控制器合起来的统称,因为运算器和控制器在逻辑关系和电路结构上联系十分紧密,尤其在大

zerglurker的C语言教程004——指针初步讲解

在上次的教程里面,我提到了指针. 针对指针,这次我将简单的讲讲,后面我还会讲到--那个时候你应该有了相当的基础. 首先,先讲讲指针类型. 任何类型关键字后面加一个*符号,就会变成指针类型. 比如: char → char* 字符指针 int → int* 整数指针 double→double* 双精度指针 甚至还可以这样: char*→char** 字符指针的指针类型 →char*** 字符指针的指针的指针类型- 指针本质上是一个内存地址值,该内存地址上存放的是相关类型的数值.但是void*指针

nodejs,webpack安装以及初步运用

nodejs安装: 1.下载:https://nodejs.org/en/download/ 2.安装node-v6.11.3-x64.msi文件,直接默认安装(next--): 3.验证是否完成安装:cmd 进入后输入命令 node -v  回车能得到nodejs版本号: 输入node 回车再输入console.log('aaaaa') 回车能正常显示输出. 这表示nodejs安装成功. webpack安装: 1.npm安装:在f盘新建文件夹webpack,在webpack文件夹建文件夹dem

Github 的注册教程和初步使用体验

我叫许晴,是网工143的学生,学号是1413042064,兴趣包括手绘,看书和手游.学习过c++和汇编语言课程,但在编程方面没什么独立实践经验. 我的Githup用户名是 XQ123 .下面是我在github的注册流程及初步使用体验. 我先搜索github,试了好几次才进去官网,但是在手机客户端注册的话比较好进.这是网页注册的界面.使用名不能设成中文,只能使用数字.字母和特殊符号,不能以短横线开头.如果设置的用户名有重复的话也不能设置 如果设置的用户名已经有人使用的话,也是不能设置的. 然后就是

Unity3D游戏开发初探—2.初步了解3D模型基础

一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被.机械等等,比如一个大楼的3D模型图.3D模型也包括玩具和电脑模型领域. 互联网的形态一直以来都是2D模式的,但是随着3D技术的不断进步,在未来的时间里,将会有越来越多的互联网应用以3D的方式呈现给用户,包括网络视讯.电子阅读.网络游戏.虚拟社区.电子商务.远程教育等等.甚至对于旅游业,3D互联网也能

虚拟桌面技术的初步探讨

[文章标题]: 虚拟桌面技术的初步探讨  [文章作者]:  newjueqi  [作者邮箱]: [email protected][作者QQ号]: 190678908[编写语言]:VC++6.0[操作平台]: XP-SP2[作者声明]:感觉到这是一种非常有意思的技术,这篇就当成是学习笔记吧!本人只是感兴趣,没有其它目的,失误之处敬请给位大侠原谅! 本文曾发表于看学论坛http://bbs.pediy.com/showthread.PHP?t=82537                      

【Qt学习笔记】1.初步接触

一.前言 Qt是一个跨平台的C++图形面向对象的框架,今天开始学习并记录学习过程,希望通过这段时间的努力学会Qt的使用. 同时我也希望在学习的过程中对C++的各种特性有能深刻的认识. 此外,我在Qt初步的学习过程中,所用的环境应该是 VS2015 IDE 二.安装 官网下载Qt安装包和 Qt for VS addin,分别安装,并配置. 三.Hello World 接下来用Qt框架来完成第一个程序 首先打开VS,创建一个Qt工程 熟悉的C++界面,但Qt是有可视化界面的,点击解决方案管理器中的.

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

本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): 1.实现基本通信框架,包括对游戏的需求分析.设计及开发环境和通信框架的搭建: 2.实现网络底层操作,包括创建线程池.序列化网络包等: 3.实战演练,实现类似于CS反恐精英的3D对战网络游戏: 技术要点:C++面向对象思想.网络编程.Qt界面开发.Qt控件知识.Boost智能指针.STL算法.STL.

初步安装、使用PyPy

最近一周,一直在琢磨着怎么提高python的运行效率,前几天还写了一篇关于提高运行效率的博文,有兴趣的可以去看看,地址如下:http://11026142.blog.51cto.com/11016142/1858568 这些都是从Python语言本身的角度提高优化代码来提高效率,看过几本Python教材.也看过网上的一些优秀博文,都说PyPy是Python的未来,是提高python运行效率的终极杀器,今天上午闲来无事,决定也来了解一下这个杀器.首先是在网上查资料大概了解一下PyPy是什么东西,在

9.8对编译原理的初步认识

编译原理的第一节课,老师为我们分享了几个网站(网站详情本文最底下),是有关于网友们对编译原理这门学问的看法.在别人的眼中,让我们初步领略<编译原理>的气息. 刚开始老师带领我们进入编译原理的世界,为我们介绍了编译原理的三大圣书——龙书.虎书和鲸书,可见在编译原理是一门多大的学问. 编译原理就是什么? 所谓编译,我们能够通俗的想到“翻译”这个词.一个编译程序就是一个语言翻译程序,语言翻译程序把一种语言(源程序)书写的程序翻译成另一种语言(目的语言)的等价程序. 就是程序员编写的高级语言翻译成计二