作业帮 > 综合 > 作业

C++编程分析提问?The TriangleTime Limit:1000MSMemory Limit:10000KTo

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/09 02:58:22
C++编程分析提问?
The Triangle
Time Limit:1000MS
Memory Limit:10000K
Total Submissions:23423
Accepted:13604
Description
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
(Figure 1)
Figure 1 shows a number triangle.Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base.Each step can go either diagonally down to the left or diagonally down to the right.
Input
Your program is to read from standard input.The first line contains one integer N:the number of rows in the triangle.The following N lines describe the data of the triangle.The number of rows in the triangle is > 1 but >N;
for(i=1;ip[i][j];
}
for(i=1;iMAX[i])
MAX[i]=m[i][j];
}
}
cout
要调用构造函数,调用哪个构造函数根据对象是否赋初始值而定,“要对应的”.
2.对象的生命期结束时要调用析构函数,析构的顺序和构造的顺序相反!
结果是:
Starting1.
Default constructor called.
Default constructor called.
Default constructor called.
Ending1.
Starting2.
Constructor:a=1,b=2
Constructor:a=3,b=4
Constructor:a=5,b=6
Ending2.
Destructor called.a=5,b=6
Destructor called.a=3,b=4
Destructor called.a=1,b=2
Destructor called.a=5,b=6
Destructor called.a=3,b=4
Destructor called.a=1,b=2
和main函数对应的分析如下:
int main()
{
cout<<“Starting1……”<<endl;
A a[3];
for(int i=0;i<3;i++)
a[i].Set(2*i+1,(i+1)*2);
cout<<“Ending1……”<<endl;
cout<<“string2……”<<endl;
A b[3]=;
cout<<“Ending2……”<<endl;
return 0;
}
.执行cout<<“Starting1……”<<endl;
Starting1.
.执行A a[3]; //这里调用不带参数的构造函数A::A()
Default constructor called. 构造a[0],调用构造函数A::A()
Default constructor called. 构造a[1],调用构造函数A::A()
Default constructor called. 构造a[2],调用构造函数A::A()
.执行for循环改变对象a[0]、a[1]、a[2]的成员值a、b,不输出什么
.执行cout<<“Ending1……”<<endl;
Ending1.
.执行cout<<“string2……”<<endl;
Starting2.
.执行A b[3]=; //这里调用带参数的构造函数A::A(int i,int j)
Constructor:a=1,b=2 构造b[0],调用构造函数A::A(int i,int j)
Constructor:a=3,b=4 构造b[0],调用构造函数A::A(int i,int j)
Constructor:a=5,b=6 构造b[0],调用构造函数A::A(int i,int j)
.执行cout<<“Ending2……”<<endl;
Ending2.执行自己写的cout
.在函数结束(return 0;)之前,对象的生命期结束,调用析构函数
注意:析构顺序和构造顺序相反!
Destructor called.a=5,b=6 析构b[2],调用A::~A()
Destructor called.a=3,b=4 析构b[1],调用A::~A()
Destructor called.a=1,b=2 析构b[0],调用A::~A()
Destructor called.a=5,b=6 析构a[2],调用A::~A()
Destructor called.a=3,b=4 析构a[1],调用A::~A()
Destructor called.a=1,b=2 析构a[0],调用A::~A()
.程序结束.