2016/10/16

来源:互联网 发布:叶友根字体下载mac 编辑:程序博客网 时间:2024/06/03 21:49
/*1631-5 黄加勉 <2016.10.16>
 连续第15天总结*/


A  //今日任务

1.对象成员(100%);
2.深拷贝与浅拷贝了解(100%)



B  //具体内容

1.实例化包含对象成员的对象时,先运行先定义的对象成员的构造函数,在运行后定义的成员对象的构造函数,析构函数反之;
2.浅拷贝就是简单的吧一个对象的数据拷贝给令一个对象,而在拷贝堆中内存时会导致被拷贝对象内存中数据丢失,销毁对象时还会造成崩溃;
3.深拷贝就是把对象堆中内存的数据拷贝给另一个对象,另一个对象的内存空间是单独分配的,所以互不干扰;
4.看到群里的三色球问题,写了个程序,但是不会用枚举,所以明天学学枚举类型;


附代码:


#include <iostream>
#include <string>
#include "Header.h"
using namespace std;


string* removedArr(string _initArr[], string _taget)
{
int x = 0;
string *p;
p = new string[3];
for (int i = 0; i < 3; i++)
{
if (_initArr[i] == _taget)
{
continue;
}
else
{
p[x] = _initArr[i];
x++;
}
}
return p;
}
int main()
{
string arr[3] = { "red","blue","yellow" };
string result[10][3];
string x, y, z;
int val = 0;
for (int i = 0; i < 3; i++)
{
x = arr[i];
for (int j = 0; j < 2; j++)
{
string *p = removedArr(arr, x);
y = p[j];
for (int k = 0; k < 1; k++)
{
string *q = removedArr(p, y);
z = q[k];
result[val][0] = x;
result[val][1] = y;
result[val][2] = z;
val++;
}
}
}
cout << "There are '" << val << "' possible situations : " << endl << endl;
for (int a = 0; a < val; a++)
{
cout << a + 1 << " :   ";
for (int b = 0; b < 3; b++)
{
cout << result[a][b] <<"  ";
}
cout << endl;
}
cout << endl;
system("pause");
return 0;
}


C  //明日任务


1.深拷贝与浅拷贝;
2.枚举类型;
3.优化代码;
4.复习;
0 0