
直接学C++是有一定难度的,我是大三计算机系的学生,个人不推荐直接学习C++,应该先从C语言上手,尽管C是面向过程,而C++是面向对象,但不可否认的是有了C的基础,无论是上手java还是C++或者是别的语言,都很容易上手,一定程度来说,C++继承了C的优点,对C有了一定的改进,但编程时,要跳出C的思想,推荐C程序设计:谭浩强著 第三版,推荐 C++ 面向对象程序设计 电子工业出版社 杜茂康 吴建 王永编著,配套的卖点编程题,注重实践,掌握C或C++得思维与思想。 我的QQ是1661002,你可以加我 有什么不明白的 可以一起研究!!
另外,站长团上有产品团购,便宜有保证
测试通过,加分 采纳!!!
#include<iostream>
using namespace std;
template<class T>
void BubbleSort(T a[],int n)
{
T temp;
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
class Clock
{
private:
int h,m,s;
public:
Clock(){}
Clock(int h1,int m1,int s1):h(h1),m(m1),s(s1){}
bool operator>(const Clock a)
{
if(h>ah)
return true;
else if(h==ah && m>am)
return true;
else if(h==ah && m==am && s>as)
return true;
return false;
}
friend ostream& operator<<(ostream& out,Clock s)
{
out<<sh<<" "<<sm<<" "<<ss<<endl;
return out;
}
};
int main()
{
int iArray[5]={10,8,20,15,5},i;
BubbleSort(iArray,5);
for (i=0; i<5; i++)
cout<<iArray[i] <<' ';
cout << endl;
Clock cArray[3]={Clock(12,12,12), Clock(10,10,10), Clock(7,7,7),};
BubbleSort(cArray,3);
for (i=0; i<3; i++)
cout<<cArray[i] << ' ';
cout << endl;
return 0;
}
结果如下:
a=0 b=0 c=0
a=1 b=0 c=0
a=1 b=3 c=0
a=1 b=3 c=5
注意:创建派生类的对象,基类的构造函数函数优先被调用(也优先于派生类里的成员类);如果有多个基类则构造函数的调用顺序是某类在类派生表中出现的顺序而不是它们在成员初始化表中的顺序。
B b1; 执行流程: A(){a=0;b=0;} -> B(){c=0;}
B b2(1); 执行流程:A(int i){a=i;b=0;} -> B(int i):A(i){c=0;}
其他的同理
调用display1() 比较简单,顺序执行,先调基类的display(),再执行 cout<<" c="<<c<<endl;
C++语言程序设计分为面向对象和面向过程,C语言只是面向过程,C++是C语言的扩展版。所以可以说C++面向对象程序设计是C++程序设计的一部分,但你已经学过C语言,所以可以直接学面向对象程序设计,不过为了更好的从C过度到C++,建议完整学完C++程序设计
《面向对象程序设计》第10章在线测试
剩余时间:
59:55
答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、throw后面的表达式不可以是(D )
A、常量 B、变量
C、对象 D、数组
2、关于没有被捕捉的异常正确的说法是(A/C )
A、在catch块中没有处理的异常 B、未被捕捉的异常必然导致系统崩溃
C、如果一个异常没有被捕捉到,将调用terminate()函数终止程序运行 D、忽略它
3、关于异常对象的说法正确的是( A)
A、异常对象需要先建立,再抛出 B、以传值方式传递异常对象时,抛出的是局部临时对象
C、以引用方式传递异常对象时,抛出的是局部静态对象 D、以指针方式传递异常对象时,抛出的是全局临时对象
4、关于try, throw和catch使用的说明中,错误的是(D )
A、throw必须在try块中 B、每一个try块的后面一定要跟着catch块
C、程序中catch块可以有多个 D、throw抛出的异常与距它最近的cach匹配
5、为保证程序中的全局变量不与开发商提供的全局变量重名,可以采取的措施是(C )
A、查阅手册,不起同样的名字 B、引入命名空间
C、避开不用 D、让开发商改名
第二题、多项选择题(每题2分,5道题共10分)
1、下面与异常处理相关的关键字有(CD )
A、Try
B、Catch
C、try
D、catch
2、下面与异常处理相关的关键字有(BC )
A、Throw
B、throw
C、try
D、Try
3、throw 表达式中的表达式的含义(BD/ (不知道正确答案是什么))
A、表达式表示异常的值
B、表达式与return语句的运算数相似
C、表达式表示异常的类型
D、表达式的值可以用来区别不同的异常
4、catch子句的说法正确的是( AB)
A、catch子句后的复合语句是异常处理程序
B、catch子句捕获throw表达式抛出的异常
C、catch子句的异常类型说明只能是类型,不能是数值
D、catch子句的异常类型不能是自定义类
5、关于catch(…)语句的说法正确的是(AC )
A、catch(…)语句可以捕获任何异常
B、catch(…)语句可以放在catch子句的任何位置
C、catch(…)语句必须放在catch子句的最后
D、catch(…)语句捕获空的异常
第三题、判断题(每题1分,5道题共5分)
1、异常如果没有要求程序立即进行处理,将会引起程序错误甚至崩溃的现象。
正确 错误T
2、抛出异常的模块并不负责异常的处理,该异常的处理可以程序中的任何位置。
正确 错误F
3、异常信号传递方式有三种:传值方式、引用方式和指针方式。
正确 错误T
4、命名空间,就是在程序的不同的模块中使用相同的名字表示不同的事物(实体)。目的是提供一种机制,使大程序的各个部分中因出现重名而导致冲突的可能性降到最低。
正确 错误T
5、catch处理程序的出现次序无关紧要。
正确 错误F
1、如下两个函数原型是否等价?
Float fun(int a, flaot b, charc);
Float fun(int, float, char c);
等价
2、如下两个函数第一行是否等价?
Float fun(int a, flaot b, charc)
Float fun(int, float, char);
等价
3、如下两个函数是否等价
Float fun ( );
Float fun (void);
等价
4、下列在内存中分配一个整数并将其初始化为零的语句正确与否?
Int myval=new int (0);
正确
以上就是关于求 C++面向对象程序设计 (杜茂康 吴建 王永 著) 课后答案全部的内容,包括:求 C++面向对象程序设计 (杜茂康 吴建 王永 著) 课后答案、使用C++面向对象程序设计编程、c++面向对象程序设计课后第五章第7题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)