1、在C++中建立参数类型和个数不同的同名函数是可能的,这称为函数重载函数(P31)。
2、作用域运算符::p(33)能够用来访问与当前作用域内与局部变量同名的全局变量。
3、函数模板能够定义一个在不同数据类型基础上完成同一个任务的函数。
4、必须被成员运算符函数重载的运算符有赋值运算符= 、()、-> [ ] 。p216
5、必须被友员运算符函数重载的运算符有* 、/ 、
+ 。- p204
6、当用公有继承人从基类派生一个类时,基类的公有成员成为派生类的公有成员,受到保护成员成为派生类的保护成员。P140 p145
7、派生类的对象可作为基类类的对象处理(基类,派生类)
8、为了访问某个类的私有数据成员,必须在该类声明该类的友元。√
9、静态数据成员是类的所有对象共享的信息。√
指针调用成员函数10、每个对象都维护了一个指向自身对象的指针,这个指针称为自引用(this )指针。P81
1、什么是构造函数和析构函数,它们在什么时候被调用,并写出它们有什么作用。
构造函数是一种特殊的成员函数,名字必须与类名相同。不需要用户来调用,而是在建立对象时自动执行。主要用于为对象分配空间,进行初始化。P61
析构函数也是一种特殊的成员函数,函数名必须与类名相同但是前面必须加上一个波浪号(~)无返回值。撤销对象时,编译系统会自动地调用析构函数。它执行与构造函数相反的操作,通常用于执行一些清理任务,如释放分配给对象的内存空间等。P72
2、什么是多继承?多继承时,构造函数和析构函数执行顺序是怎样的?虚基类的作用,在
声明虚基类的时候应注意什么?
当一个派生类有两个或多个基类时,这种派生方法称为多重继承。多重继承的构造函数的执行顺序也是遵循先执行基类的构造函数再执行对象成员的构造函数。处于同一层次的各个基类构造函数的执行取决于声明派生类时所指定的各个基类的顺序。析构函数的执行顺序则刚好与构造函数的执行顺序相反。P167
(虚基类不知道)
3、静态成员和普通成员有什么区别(分数据成员和成员函数)?
静态数据成员与一般的数据成员不同,无论建立多少个类的对象,都只有一个静态数据成员的拷贝。P98定义上与普通成员相似但前面要加上static关键字。初始化不同,静态数据成员应在类外单独进行,而且应在定义对象之前进行。静态成员属于类对象的集合,而不是像普通数据成员属于某一对象。P100
非静态成员函数有this指针,而静态成员函数没有。静态成员函数可以直接访问本类中的静态数据成员,因为静态数据成员同样是属于类的,可以直接访问。一般而言静态成员函数不访问类中的非静态成员。P103只能通过对象名来访问。
4、编译时的多态性与运行时的多态性有什么区别?他们的实现方法有什么不同?
编译时的多态性也称为静态多态性,运行时的多态性也称为动态多态性。
编译时的多态性是通过函数重载和运算符重载实现的,运行时的多态性是通过继承和虚函数
来实现的。(百度)
5、有哪几种继承方式?每种方式的派生类对基类成员的继承性如何?
公有继承方式:基类所有公有成员在派生类中仍以公有成员的身份出现,保护成员在派生类中仍以保护成员的身份出现,基类的私有成员不允许派生类继承
私有继承方式:基类所有公有成员在派生类中都以私有成员的身份出现,保护成员在派生类中都以私有成员的身份出现,基类的私有成员不允许派生类继承
保护继承方式:基类所有公有成员在派生类中都以保护成员的身份出现,保护成员在派生类中都以私有成员的身份出现,基类的私有成员不允许派生类继承P141
6、指针和引用的区别
指针是一个实体,而引用仅是个别名;引用使用时无需解引用(*),指针需要解引用;
引用只能在定义时被初始化一次,之后不可变;指针可变;引用没有const,指针有const,const 的指针不可变;引用不能为空,指针可以为空;“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;指针和引用的自增(++)运算意义不一样;(百度的)
11、读程序写结果
1、#include<iostream.h>
2、class aClass
{ public :
aClass ( ) {total++;}
~aClass ( ) {total--;}
int gettotal( ) {return total;}
private :
static itn total;
};
int aClass : : total=0;
main ( )
{aClass o1,o2,o3;是O不是0
cout<&al( )<<”objects in existence\n”;
aClass *p;
p= new aClass;
cout<&al( )<<”objects in existence after allocation\n”;
delete p;
cout<&al( )<<”objects in existence\n”;
return 0;}
答案(和百度的差不多应该是这个)
3objects in existence
4objects in existence after allocation
5objects in existence
3、#include <iostream.h>
int &f(int & i)
{ i+=10;是i+不是it
return i;}
void main ( )
{int k=0;
int &m=f(k);
cout<<k<<endl;
m=20;
cout<<k<<endl;
}
答案:10
20
1、下面是一个计算器类的定义,请完成该类成员函数的实现(8)
class counter
{
private:
unsigned value ;
public :
counter (unsigned v);
void increment( );+1
void decrement( );-1
int getvalue( );取计算器值
};
答案:
counter::counter(unsigned v)
{ value =v;}
void counter:: incremen()
{ value ++;}
void counter:: decrement()
{ value - -;}
int counter:: getvalue()
{return value;}
int counter::print()显示数据。这段是百度搜的,以防万一加上去{cout<<”value is”<<value<<endl;
return 0;}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。