代码
#include
using namespace std;
class B
{
public:
B()
{
cout<<"default constructor"<<endl;
}
~B()
{
cout<<"destructed"<<endl;
}
B(int i):dat...
分类:
其他好文 时间:
2015-04-15 09:40:24
阅读次数:
133
代码
#include
using namespace std;
class example
{
public:
example()
{
cout<<"Default Constructing! "<<endl;
}
example(int n)
{
i=n;
cout<<"C...
分类:
其他好文 时间:
2015-04-15 09:40:13
阅读次数:
117
#include
#include
using namespace std;
class A
{
private:
char *a;
public:
A(char *aa)
{
a = new char[strlen(aa)+1]; // strcpy(a, aa); // }
~A()
{
...
分类:
其他好文 时间:
2015-04-15 09:39:59
阅读次数:
100
问题
(2)将注释(a)所在的那一行去掉,会出现什么现象?为什么?为什么a数据成员所占用的存储空间要在aa长度基础上加1?若指针a不是指向字符(即不作为字符串的地址),是否有必要加1?
提示错误,因为没有为a指针初始化地址,a将变为野指针。
字符串结束时需要用'\0'。
没有必要。
(3)为类A增加复制构造函数,用下面的main函数测试
int main()
{
...
分类:
其他好文 时间:
2015-04-15 09:38:56
阅读次数:
139
问题、
下面的程序,因为存在指针类型的数据成员,需要能完成深复制的构造函数。请补充完整构造函数和析构函数(其他不必动)。其中,构造函数要完成下面三个任务:
(1)为各成员函数赋值,按照深复制原则,其中arrayAddr应该是为保存数据新分配的连续空间的首地址;
(2)MyArray(int *a, int n)中,要将a指向的数组中的数值,逐个地复制到新分配的arrayAddr指向的空...
分类:
编程语言 时间:
2015-04-15 09:38:41
阅读次数:
133
【项目2-我的数组类】
下面的程序,因为存在指针类型的数据成员,需要能完成深复制的构造函数。请补充完整构造函数和析构函数(其他不必动)。其中,构造函数要完成下面三个任务:
(1)为各成员函数赋值,按照深复制原则,其中arrayAddr应该是为保存数据新分配的连续空间的首地址;
(2)MyArray(int *a, int n)中,要将a指向的数组中的数值,逐个地复制到新分配的arrayA...
分类:
编程语言 时间:
2015-04-15 09:38:38
阅读次数:
152
【项目1-深复制体验】(2)
(2)将注释(a)所在的那一行去掉,会出现什么现象?为什么?为什么a数据成员所占用的存储空间要在aa长度基础上加1?若指针a不是指向字符(即不作为字符串的地址),是否有必要加1?
去掉后:
因为没有为a开辟空间,所以a指针会乱指,导致程序出错。
因为aa字符串结束后需要+1的‘\0’表示字符串结束。
没必要,非字符串,开...
分类:
其他好文 时间:
2015-04-15 09:38:30
阅读次数:
106
代码
#include
using namespace std;
class AA
{
public:
AA(int i,int j)
{
A=i;
B=j;
cout<<"Constructor\n";
}
AA(AA &obj)
{
A=obj.A+1;
...
分类:
其他好文 时间:
2015-04-15 09:38:20
阅读次数:
109
代码
#include
using namespace std;
class MyClass
{
public:
MyClass(int x=0):i(x)
{
cout<<"C"<<i;
}
~MyClass()
{
cout<<"D"<<i;
}
void SetValue(i...
分类:
其他好文 时间:
2015-04-15 08:25:37
阅读次数:
137
代码
#include
using namespace std;
class A
{
public:
A()
{
cout<<"A";
}
~A()
{
cout<<"~A";
}
};
class B
{
A *p;
public:
B()
{
...
分类:
其他好文 时间:
2015-04-15 08:24:41
阅读次数:
142