赞
踩
选择题
A. 析构函数不能是纯虚函数
B. 重写基类纯虚函数时函数的返回值类型必须保持不变
C. 纯虚函数可以是内联函数
D. 运算符重载函数不能是纯虚函数
A. throw抛出指针时指向的对象类型可以是不完整类型
B. throw;可重抛当前异常,只能在catch块中使用
C. throw表达式可以出现在return语句中
D. 使用noexcept声明的函数中不能使用throw语句抛出异常
其中Base是Derived的多个公开非虚基类之一,且Base是多态类,
下面关于对p进行强制类型转换的表达式一定正确的是
A. static_cast<Derived *>(p) == static_cast<void *>(p)
B. const_cast<const Base *>(p) == dynamic_cast<void *>(p)
C. dynamic_cast<Derived *>(p) == dynamic_cast<void *>(p)
D. reinterpret_cast<Derived *>(p) == static_cast<Derived *>(p)
A. 内联函数拥有内部链接
B. 模板函数都是内联函数
C. 同一内联函数的函数指针在多个编译单元中不一定比较相等
D. constexpr函数都是内联函数
A. 运算符重载函数的参数个数与该运算符的操作数个数相等
B. 重载operator delete函数参数列表只能有一个void *指针
C. 重载关系运算符的函数返回值类型不一定是bool
D. 重载函数调用运算符的函数可以是静态成员函数
A. 友元函数可以被继承
B. 友元函数不能是虚函数
C. 类模板内的声明的友元函数是函数模板
D. 通过友元声明首次定义的函数可以通过参数依赖查找进行引用
A. 使用typeid前必须包含<type_info>头文件
B. typeid只能用于多态类型或表达式
C. typeid可以用于不完整类型
D. 已知dynamic_cast<D *>(p) != nullptr,则typeid(*p)==typeid(D)
A. nullptr是纯右值
B. nullptr是C++关键词
C. static_cast<int>(nullptr) == 0
D. nullptr == NULL
下列关于用户定义字面量的说法正确的是?
A. +1s的类型是std::chrono::duration<int>
B. "van"s的类型是std::string
C. 11.4514min的类型是std::chrono::minutes
D. 4i的类型是std::complex<int>
A. 模板参数只能是类类型,不能是基本数据类型
B. 非类型模板参数的类型可以是指针
C. 模板参数列表中只能有一个变长模板参数,并且它必须位于模板参数列表最后
D. 模板参数不能是不完整类型
A. (0b1'00'01l)
B. (061'00'01i)
C. (06|'01'011)
D. (0b1'01'0|1)
A. extern "C++" const int a; 拥有内部链接
B. extern "C" int b = 2; 拥有外部链接
C. extern template int c<int>(); 是模板显式实例化定义
D. extern和inline说明符不能同时使用
A. sizeof short < sizeof long
B. true + false < true + true
C. NULL < '0'
D. "hello" < "world"
A. std::string_view可以隐式转换为std::string
B. 字符串字面量是泛左值
C. std::stoi转换失败时会返回空字符串
D. 字符串字面量的类型是const char *
A. auto a(int());
B. template<auto> class b;
C. return new auto(*this);
D. int d(auto());
A. 若类Foo定义静态成员变量 static Foo instance; 则需要在某一编译单元的全局作用域中添加 static Foo Foo::instance; 类外定义以防止链接错误
B. C++标准确保静态局部变量一定会被初始化一次并且只会被初始化一次
C. 若定义某对象于全局作用域且未使用static说明符,则它一定拥有外部链接
D. 若静态局部变量被成功初始化,则它的析构函数会在程序正常退出时执行
A. 析构函数和operator delete重载函数隐含noexcept
B. throw; 语句可以重新抛出当前异常,它只能在catch块中使用
C. 构造函数的成员初始化列表中抛出异常,一定会调用当前对象的析构函数
D. new表达式只会抛出std::bad_alloc异常
A. mutable
B. override
C. operator
D. export
A. 拷贝构造函数不能声明为explicit
B. 模板函数不能是拷贝构造函数
C. 拷贝赋值运算符重载函数不能是虚函数
D. 拷贝赋值运算符重载函数的参数不能按值传递
A. operator?:不能被重载
B. operator&是二元运算符
C. 所有的成员访问运算符都不能重载
D. 重载operator!=后编译器会自动生成operator==
A. this是纯右值,*this是左值
B. this不能在非静态成员函数中使用
C. this不能在成员初始化列表中出现
D. this指针出现在成员函数的首个参数
A. lambda表达式是纯右值
B. decltype([]{})表示的类型是void(*)()
C. lambda表达式拥有的闭包类型可以被继承
D. lambda表达式的函数体可以返回lambda表达式
A. 全局变量构造函数抛出异常可以在main函数捕获
B. 全局变量析构函数一定会在程序终止时执行
C. 单个编译单元内全局变量的构造顺序是未指定的
D. 没有指定初始化的整数全局变量都是0
A. 调用constexpr函数一定会在编译期计算结果
B. constexpr函数声明隐含noexcept
C. constexpr函数是内联函数,并且不能取地址
D. constexpr静态成员变量是左值
A. 任意类型的指针都可以隐式转换为void *
B. 两个指针变量做减法的结果类型是std::ptrdiff_t
C. 数组变量作为实参传递时会退化为指向数组的指针
D. 指针类型都是随机访问迭代器
A. std::bind的返回值类型是std::function模板的实例
B. std::bind可以绑定类成员函数指针或类成员变量指针
C. std::bind返回的函数对象可以接受任意个数的参数
D. std::bind调用时每个绑定占位符(如std::placeholders::_1)只能使用一次
A. 使用new int[N]分配数组时允许N==0
B. 全局operator new函数可以被重载,但是不能被显式调用
C. 调用new表达式只可能抛出std::bad_alloc异常
D. new T、new T()、new T{}是等价的
A. 已知vector<int> v; 使用v.swap(v);收缩已分配的内存
B. 已知map<std::string, int> m; 使用m[""]访问未在容器中的值
C. 已知list<int> l; 使用std::sort(l.begin(), l.end())进行排序
D. 已知array<float, 4> a; 使用a.erase(a.begin())删除头部元素
(假设为32位Windows环境,使用MSVC 19.26编译器)
struct Foo
{
char A;
int B;
short C;
long D;
};
A. std::mutex的加锁和解锁的操作可以在不同的线程进行
B. 通过std::async得到的std::future对象析构函数会阻塞直到异步操作完成
C. 多个线程同时调用std::promise::set_value是线程安全的
D. 使用thread_local关键词前必须#include <thread>
A. 在使用自定义的全局重载operator delete之前,必须#include <new>
B. 类特定operator delete重载函数必须添加static关键词声明为静态成员函数
C. 若基类声明了虚析构函数,则派生类重载的类特定operator delete也具有多态性
D. operator delete重载函数不能是友元函数
A. 函数模板不能全特化
B. 函数模板不能在函数体内声明
C. 模板函数的重载决议优先级低于非模板函数
D. 移动构造函数不能是模板函数
A. auto a(char());
B. auto a(char(0));
C. auto a(char{});
D. auto a(char{0});
A. 必须要通过std::move才能把x转换为右值
B. std::move(x)返回右值,因此它不能出现在等号左边
C. std::move是函数模板
D. 定义变量 auto &&a = std::move(x); 则a是右值
A. 派生类的大小 >= 其所有基类的大小之和
B. 在C++中所有种类的指针的大小都相等,且等于 sizeof(void*)
C.同一平台上内建bool类型的大小一定大于等于char类型的大小,即sizeof(bool) >= sizeof(char)
D. 联合体(union)的大小等于它所有的成员中占用空间最大的一个成员的大小
A. 联合体可以继承联合体,但不能继承结构体
B. 联合体不能为空
C. 联合体不能有受protected访问控制的成员
D. 联合体模板可以偏特化
答案:
CCCDCDCCBBCBBBADABBAABDDBBAABB
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。