首页 > 代码库 > C++初步 2

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;
}
View Code

对象成员:

技术分享
/*
 * 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;
}
View Code

浅拷贝:

技术分享
/*
 * 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;
}
View Code
<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco }</style>
 

Array

Array&

arr2.m_iCount:5

~Array

~Array

深拷贝:

技术分享View Code
<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco }</style>

Array

Array &

0

1

2

3

4

0

1

2

3

4

~Array

~Array

C++初步 2