c++lff'pke

97 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第N天,点击查看活动详情目录 🌿 择题 💦第一题 某函数申明如下()

void Func(int &nVal1); 1 有int a,下面使用正确的为:

A Func(a) B Func(&a) C Func(*a) D Func(&(*a))

因为是int类型的,所以直接排除CD,所以直接传递int类型的变量就可以了,所以选A

这道题的答案是A

💦第二题 ClassA *pclassa=new ClassA[5]; delete pclassa; 1 2 C++语言中,类ClassA的构造函数和析构函数的执行次数分别为()

A 5,1 B 1,1 C 5,5 D 1,5

这道题考察了new和delete

这里要开辟5个数据,所以要构造五次,这里的delete pclassa,所以只会调用一次

但是这道题delete不匹配,有可能会崩溃

这道题的答案是A

💦第三题 动态内存分配(C语言中malloc,C++中的new)得到的存储区属于内存中的:

A 静态区 B 堆(heap) C 栈(stack) D 堆栈 E 内核内存 F 不确定

这道题一眼看过去就是堆,malloc的空间是自己的,肯定是在堆上,new是可以重载的,有可能不在堆上,默认情况是在堆上

这道题的答案是B

💦第四题 下列静态数据成员的特性中,错误的是()

A 引用静态数据成员时,要在静态数据成员名前加<类名>和作用域符号 B 说明静态数据成员时前边要加关键字static来修饰 C 静态数据成员在类体外进行初始化 D 静态数据成员不是所有对象所共有的

静态成员变量:所有对象共享的,并不属于具体的某个对象——在类中声明,然后需要在类外单独进行定义,一定不能在构造函数初始化列表的位置初始化——在类外访问静态成员变量时:对象.静态成员变量 || 类名::静态成员变量

A 选项 —— 类名::静态成员变量 B 选项 没加static是普通成员变量,加了就是静态成员变量 C 选项 只能在类外初始化,在程序运行的时候就构造好了 D 选项 静态成员变量最大的特性是所有对象共享的

这道题的答案是D

💦第五题 用class关键字定义的类,其成员默认的访问属性为()

A private B protected C public D 无定义

class类默认的访问属性是私有的 —— private

这道题的答案是A

💦第六题 在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是 ( )。

A 无操作数的运算符 B 二元运算符 C 前缀一元运算符 D 后缀一元运算符

一元运算符:该元素只需要一个参数 例如 :-- ++

每个非静态的成员函数都有一个隐藏的this指针,因为参数表中没有任何参数,所以AB直接排除

第一个是前置++,第二个是后置++

这道题的答案是C

💦第七题 有如下程序:

#include using namespace std; class MyClass{ public: MyClass(int i=0){cout<<1;} MyClass(const MyClass&x){cout<<2;} MyClass& operator=(const MyClass&x){cout<<3; return*this;} ~MyClass(){cout<<4;} }; int main(){ MyClass obj1(1),obj2(2),obj3(obj1); return 0; } 1 2 3 4 5 6 7 8 9 10 11 12 13 运行时的输出结果是

A 121,444 B 112,444 C 11,114,444 D 11,314,445 E 11,314,444

obj(1)和obj(2)是直接调用构造函数,obg(obj(1))直接调用拷贝构造,所以这里会打印112,然后就是return 0,然后就会调用析构函数,先创建的后释放,然后会打印444

这道题的答案是B

💦第八题 下面有关c++静态数据成员,说法正确的是()

A 不能在类内初始化 B 不能被类的对象调用 C 不能受private修饰符的作用 D 可以直接用类名调用

这道题又是考察静态的数据成员

静态成员变量:所有对象共享的,并不属于具体的某个对象——在类中声明,然后需要在类外单独进行定义,一定不能在构造函数初始化列表的位置初始化——在类外访问静态成员变量时:对象.静态成员变量 || 类名::静态成员变量

A const类型可以在类内初始化 B 打点和类名加作用域访问 C 可以受private修饰

这道题的答案是D

💦第九题 在C++中,为了让某个类只能通过new来创建(即如果直接创建对象,编译器将报错),应该()

A 将构造函数设为私有 B 将析构函数设为私有 C 将构造函数和析构函数均设为私有 D 没有办法能做到

如果将构造函数设置为私有的无法实现第二步,所以不行,但是可以将析构函数设置为私有的,如果想要调用析构怎么办呢? 、