-
在C++中,下列哪个语句用于定义一个字符串变量?(D)
A. string myString;
B. char myString[];
C. String myString;
D. char* myString;
关于为什么不是A,我猜测可能是因为string本质上是一个类。 -
C++中的引用与指针有什么区别?(C)
A. 引用必须初始化,指针可以不用初始化。
B. 引用可以被重新赋值,指针不能。
C. 引用不能为NULL,指针可以。
D. 以上都是
我对这个答案持怀疑态度,我查了一下,A是没问题的,主要是B,指针可以重新赋值,但是引用不可以。但是这个题是个单选题。
https://blog.csdn.net/RuanJian_GC/article/details/128977503 -
下面对于友元的错误描述是(D)
A. 关键字friend用于声明友元
B. 一个类中的成员函数可以是另一个类的友元
C. 友元函数访问对象的成员不受访问特性影响
D. 友元函数通过this指针访问对象
友元函数可以是不属于任何类的非成员函数,也可以是另一个类的成员函数,因此B没有问题。
这个友元函数他不属于该类的成员函数,他是定义在类外的普通函数,只是在类中声明该函数可以直接访问类中的private或者protected成员,所以友元函数访问对象的成员不受访问特性影响,C没有问题
友元函数通过引用访问对象,D错误
https://blog.csdn.net/qq_26337701/article/details/53996104 -
下列哪个关键字用于定义多重继承?(C)
A. extends
B. derives
C. inherits
D. virtual
我知道inherits这个词是多继承的意思,但是我还真不知道它是个关键字,查了一下没查明白,待补充 -
在C++中,使用*表示什么?(B)
A. 乘法运算符
B. 指针运算符
C. 取模运算符
D. 自增运算符
我查了一下确实有指针运算符这个说法,但是乘法运算符又有哪里不对? -
在下列函数原型中,可以作为类AA构造函数的是(A)
A. void AA(int);
B. int AA();
C. AA(int);
D.AA(int)const;
构造函数没有返回类型,我还是觉得正确答案为C -
静态成员函数没有(C)
A. 返回值
B. this指针
C. 指针函数
D. 返回类型
静态成员函数可以有指针函数
但是静态成员函数没有隐藏的this指针,因为静态成员函数属于整个类所有。 -
关于函数模板,描述错误的是(A)
A. 函数模板必须有程序员实例化为可执行的模板函数
B. 模板函数的实例化有编辑器实现
C. 一个类定义中,只要有一个函数模板,则这个类是类模板
D. 类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化
一个类定义中可以包含一个或多个函数模板,但是这并不意味着该类本身是一个类模板。类模板是用来生成多个具体的类的模板,其中每个具体类都定义了特定类型的数据成员和函数成员。类模板的定义通常以类名和模板参数列表开头,例如template class MyClass {…}。而一个普通的类定义只需要包含类名和类成员的声明,例如class MyClass {…}。
函数模板是一类通用的函数定义,可以接受不同类型的参数,但是只有在程序员将其实例化为具体的类型之后,它才能成为可执行的模板函数。
实例化是指将函数模板中的类型和值替换为实际类型和值的过程。在实例化时,编译器会根据函数调用提供的参数类型和值来生成特定的函数定义。
我还是觉得答案应该选C -
下列函数中,可以作为虚函数的是(B D)
A. 普通函数
B. 非静态成员函数
C. 构造函数
D. 析构函数
析构函数可以且常常是虚函数
此时 vtable 已经初始化了,完全可以把析构函数放在虚函数表里面来调用。C++类有继承时,基类的析构函数必须为虚函数。如果不是虚函数,则使用时可能存在内存泄漏的问题。 虚函数是用于多态和继承的,和普通函数没什么关系 -
在C中,使用override关键字可以重写父类函数。(√)
我对这个答案持疑,override关键字应该是C++中才有的 -
转换构造函数的作用是将一个其他类型的数据转换成一个类的对象。(√)
转换构造函数,将其它类型转换为当前类类型 -
类的静态数据成员可以初始化,但只能在类体外进行初始化。(√)
https://blog.csdn.net/weixin_43142797/article/details/104942986 -
指定文件的工作方式是在文件读写之前必须要做的工作。(√)
-
cerr中的信息存放在缓冲区,缓冲区满后或遇endl时向显示器输出。(√)
cerr不经过缓冲而直接输出,一般用于迅速输出出错信息,是标准错误,默认情况下被关联到标准输出流,但它不被缓冲,也就说错误消息可以直接发送到显示器,而无需等到缓冲区或者新的换行符时,才被显示。答案持疑。 -
重载运算符的函数不能有默认的参数。(√)