C++语言程序设计知识点及示例.docx
- 文档编号:4889501
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:21
- 大小:22.91KB
C++语言程序设计知识点及示例.docx
《C++语言程序设计知识点及示例.docx》由会员分享,可在线阅读,更多相关《C++语言程序设计知识点及示例.docx(21页珍藏版)》请在冰豆网上搜索。
C++语言程序设计知识点及示例
C+语言程序设计知识点及示例
知识点1:
函数重载要求函数具有形参的类型或个数不相同,也就是具有不同的形参表。
示例1:
重载函数具有不同的()。
参考答案:
形参表
示例2:
重载函数必须具有不同的返回值类型。
参考答案:
×
知识点2:
模板以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个数据类型,也就是模板是一种由通用代码构成,使用类型参数来产生一组函数或类的机制,模板包括函数模板和类模板。
示例3:
()以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个数据类型。
参考答案:
模板
示例4:
模板包括对象模板和类模板。
参考答案:
×
知识点3:
类模板与一般的类相似,都可以有数据成员与成员函数。
示例5:
类模板不能有数据成员。
参考答案:
×
知识点4:
类是某一类对象的抽象,一个类可以定义多个对象。
示例6:
一个类只能定义一个对象。
参考答案:
×
知识点5:
通常将实现简单的功能,并且要求尽可能加快程序执行速度的函数定义为内置函数
示例7:
最好将简单的功能,并且要求尽可能加快程序执行速度的函数定义为()。
参考答案:
内置函数
知识点6:
采用私有继承方式时,基类的公有成员和保护成员在派生类中的访问权限相当于派生类中的私有成员;采用保护继承方式时,基类的公有成员和保护成员在派生类中都成了保护成员。
示例8:
派生类以私有方式继承基类,则原基类的公有成员成员和保护成员成员在派生类中的访问属性分别是()。
参考答案:
私有,私有
知识点7:
在由已有类产生新类时,新类包含了已有类的特征,同时也可以加入新特性。
已有类称为基类或父类,新类称为派生类或子类。
示例9:
用于派生新类的类称为()。
参考答案:
基类或父类
知识点8:
C++为类的非静态成员函数提供了一个名字为 this的隐含指针。
示例10:
类的友元函数都有this指针。
参考答案:
×
示例11:
只有类的非静态成员函数才有this指针。
参考答案:
√
知识点9:
一个类的友元函数是非成员函数,友元函数可以访问这个类中的护保成员和私有成员。
示例12:
非成员函数只有声明为()才能访问这个类的所有护保成员和私有成员。
参考答案:
友元函数
知识点10:
纯虚函数没有函数体,纯虚函数不能被调用,含有纯虚函数的类为抽象类或抽象基类,抽象类无法建立对象的,而只作为一种用作继承的基类。
示例13:
抽象类可以用于定义对象。
参考答案:
×
知识点11:
类的静态数据成员被该类的所有对象共享。
示例14:
某个类的静态数据成员被该类的所有对象共享。
参考答案:
√
知识点12:
构造函数不能声明为虚函数,而析构函数最好声明为虚函数,并且析构函数中调用虚函数采用动态联编。
示例15:
构造函数可以声明为虚函数。
参考答案:
×
示例16:
析构函数不能声明为虚函数。
参考答案:
×
知识点13:
ifstream流类定义流对象并打开磁盘文件时的的隐含打开方式为ios:
:
in;ofstream流类定义流对象并打开磁盘文件时的的隐含打开方式为ios:
:
out。
示例17:
使用ifstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为ios:
:
in|ios:
:
out。
参考答案:
×
知识点14:
基类的私有成员为派生类中的不可访问的成员。
示例18:
派生类可以直接访问基类的私有成员。
参考答案:
×
知识点15:
声明纯虚函数的一般形式是:
virtual返回值类型函数名(形参表)=0;
示例18:
返回值类型为void,函数名为Show,没有参数的纯虚函数声明为()。
参考答案:
virtualvoidShow()=0;
知识点17:
面向对象方法的主要特征是多态性,继承性和封装性。
示例19:
面向对象方法的主要特征是多态性,继承性和()。
参考答案:
封装性
知识点18:
运算符重载只能重载C++中已经有的运算符,不能定义新运算符。
示例20:
可以重载所有的运算符及定义新运算符。
参考答案:
×
知识点18:
可以将基类与派生类中的原型相同的成员函数声明为虚函数,虚函数可以通过基类指针来访问基类和派生类中的原型相同的函数。
示例21:
虚函数一定是成员函数。
参考答案:
×
知识点19:
C++的多态性分为编译时多态性和运行时多态性。
示例22:
C++的多态性分为编译时多态性和静态时多态性。
参考答案:
×
知识点20:
构造函数的名字与类名同名,没有返回值类型。
示例23:
有给一个名为Test的无参构造函数的声明是()。
参考答案:
Test();
知识点21:
在派生类的构造函数中采用参数初始化表来实现对基类数据成员的初始化。
示例24:
在派生类的构造函数中只能采用参数初始化表来实现对基类数据成员的初始化。
参考答案:
√
示例25:
将如下程序补充完整。
#include
usingnamespacestd;//使用命名空间std
classA
{
private:
intx;//数据成员
public:
A(intm):
x(m){}//构造函数
voidShow()const{cout< }; classB: A { private: inty;//数据成员 public: B(intm,intn): {}//构造函数 voidShow()const//输出信息 { A: : Show();//调用基类A的Show() cout< } }; intmain()//主函数main() { Bobj(1,6);//对象 obj.Show();//输出信息 return0;//返回值0,返回操作系统 } 参考答案: A(m),y(n) 知识点22: 采用class定义的类中数据成员和成员函数的默认访问权限是private;采用struct定义的类中数据成员和成员函数的默认访问权限是public。 示例26: 采用struct定义的类中数据成员和成员函数的默认访问权限是()。 参考答案: public 知识点23: 运算符重载的格式是: 返回值类型operator运算符(形参表); 示例27: 重载运算符“/”的函数名为()。 参考答案: operator/ 示例28: 将如下程序补充完整。 #include classPoint { private: doublex,y;//坐标值 public: Point(doublea=0,doubleb=0): x(a),y(b){}//构造函数 voidShow(){cout< (constPoint&obj)//重载加法运算符 {returnPoint(x+obj.x,y+obj.y);} }; voidmain() { Pointp1(3.5,4.5),p2(2.5,5.5),p3;//定义对象 p3=p1+p2;//对象求和 p3.Show();//显示坐标值 } 参考答案: Pointoperator+ 知识点24: 声明类的静态成员的关键字为static,定义内置函数的关键字为inline,声明模板的关键字是template。 示例29: 声明模板的关键字是()。 参考答案: template 知识点25: 在一个类中,若在一个数据成员声明前加上static,则该数据成员称为静态数据成员,静态数据成员被该类的所有对象共享。 类的静态数据成员必须在类外进行初始化,初始化方式为: 类型名类名: : 静态数据成员名=初始值; 示例30: 阅读下面程序,写出输出结果。 #include usingnamespacestd;//使用命名空间std classA { public: A(){n+=1;}//构造函数 ~A(){n-=1;}//析构函数 staticintn;//静态成员 }; intA: : n=0;//初始化n intmain()//主函数main() { A*p=newA;//定义指针p cout<<"n="< : n< deletep;//释放p指向的动太对象 cout<<"n="< : n< return0;//返回值0,返回操作系统 } 参考答案: n=1 n=0 点评: 本例中的n初值为0,造构对象时n的值自加1,对象消失时n的值自减1,所以n的值为当前的对象个数。 示例31: 将如下程序补充完整。 #include classA { private: staticints;//静态数据成员 public: A(inti){s+=i;}//构造函数 staticvoidShow(){cout< }; //初始化静态数据成员 voidmain() { Aa (1),b (2),c(4);//定义对象 A: : Show();//显示静态数据成员 } 运行结果: 参考答案: intA: : s=0; 点评: 通过“类型名类名: : 静态数据成员名=初始值;”方式来初始化静态成员函数。 知识点26: 常对象只能调常成员函数,而一般对象既可调常成员函数,也可调非常成员函数。 示例32: 阅读如下程序,写出运行结果。 #include classMyTest { private: intnum;//数据成员 public: MyTest(inti): num(i){} voidPrint(){cout<<"1: num="< voidPrint()const{cout<<"2: num="< }; voidmain() { MyTesta(5);//一般对象 constMyTestb(18);//常对象 a.Print();//一般对象优先调用一般函数 b.Print();//常对象只能调用常函数 } 上面程序的输出结果为: 运行结果: 参考答案: 1: num=5,2: num=18 知识点27: 在定义对象时没有写参数,将调用无参构造函数。 示例33: 阅读如下程序,写出运行结果。 #include usingnamespacestd;//使用命名空间std classA { public:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 语言程序设计 知识点 示例