1.对于以下代码,说法正确的是()
char * p = new char[100];
A p 和 new出来的内存都在栈上
B p 和 new出来的内存都在堆上
C p在栈上 new出来的在堆上
D p在堆上 new出来的在栈上
new默认情况下申请的空间在堆上
2.
类模板的使用实际上是类模板实例化成一个具体的__________。
A 类
B 函数
C 模板类
D 对象
编译器在编译代码时,看到用户对类模版实例化之后,编译器才会将类模版按照具体的类型,生成一个具体的类出来
3.C++ 中,有如下类模板定义:
template<class T> class BigNumber{
long n;
public:
BigNumber(T i) :n(i) {}
BigNumber operator+(BigNumber b) {
return BigNumber(n + b.n);
}
};
已知 b1, b2 是 BigNumber 的两个对象,则下列表达式中错误的是()
A 3+3
B b1+3
C b1+b2
D 3+b
A 可以,3和3是整形,+号本身就可以支持
B 如果类中有单个参数的构造函数,该构造函数具有类型转换的作用,b1 + ¥ 的3 编译器在编译代码节点,回调用单参构造函数将3转换为BigNumber的对象
C 是两个BigNumber对象,也可以
D 3不是BigNumber类型的对象,错误
4.有一个类A,其数据成员如下:
class A {
...
private:
int a;
public:
const int b;
float* &c;
static const char* d;
static double* e;
};
则构造函数中,成员变量一定要通过初始化列表来初始化的是:______。
A a b c
B b c
C b c d e
D b c d
E b
F c
引用成员变量,const成员变量和自定义类型成员(且该类没有默认构造函数时)必须放在初始化列表位置进行初始化
选B
5.下列关于构造函数的描述正确的是?
A 构造函数可以声明返回类型
B 构造函数不可以用private修饰
C 构造函数必须与类名相同
D 构造函数不能带参数
A 构造函数是没有返回值的,不可以声明返回类型
B 一般情况下构造函数的权限都是public,因为在类外创建对象时,编译器要调用构造函数,但也有特殊情况
单例模式:一个类只能创建一个对象,这时候会将构造函数设置为private,所以错误
C 这个是概念当中提到的,正确
D 构造函数也是个函数,也是看情况来定,可以带参数
6.
下面关于类定义的说法中,正确的是:
A 类定义中包括数据成员和函数成员的声明
B 类成员的缺省访问权限是保护的
C 数据成员必须被声明为私有的
D 成员函数只能在类体外进行定义
B.
class:默认访问权限private
struct:默认的访问权限public
C.并不是必须,只是建议将成员变量设置为private,将成员函数设置为public
D.错误的,并不受限制
7.
在()情况下适宜采用 inline 定义内联函数
A 函数体含有循环语句
B 函数体含有递归语句
C 函数代码少、频繁调用
D 函数代码多,不常调用
这道题主要是考验内联函数,我们需要知道其概念,特性,和作用
8.
在 C++ 语言中,对函数参数默认值描述正确的是()
A 函数带默认值的参数只能有一个
B 一个函数的参数若有多个,则参数默认值的设定可以不连续
C 函数参数必须设定默认值
D 在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值
9.
下面有关友元函数与成员函数的区别,描述错误的是?
A 友元函数可以让本类和友元类对象调用
B 友元函数和类的成员函数都可以访问类的私有成员变量或者是成员函数
C 类的成员函数是属于类的,调用的时候是通过指针this调用的
D 友元函数是有关键字friend修饰,调用的时候也是通过指针this调用的
D.友元函数不是类的成员函数,所以没有this指针