1.如果MyClass为一个类,执行”MyClass a[5], *b[6]”语言会自动调用该类构造函数的次数是
A 2
B 5
C 4
D 9
5个Myclass对象的一个数组,调用5次Myclass类的构造函数b实际为一个指针数组,该数组中每个元素都是Myclass*,不会调用构造函数
2.
下面的程序输出可能是什么?
class Printer{
public:
Printer(std::string name) {std::cout << name;}
};
class Container{
public:
Container() : b("b"), a("a") {}
Printer a;
Printer b;
};
int main(){
Container c;
return 0;
}
A 可能是 "ab" 或 "ba"。 依赖于具体的实现
B 一直都是 "ba"
C 一直都是 "ab"
在初始化列表中初始化成员的次序:与该成员在初始化列表中出现的次序没有关系,
真正的初始化次序与成员变量在类中生成的先后次序保持一致
3.以下程序输出是
#include <iostream>
using namespace std;
int main(void)
{
const int a = 10;
int * p = (int *)(&a);
*p = 20;
cout<<"a = "<<a<<", *p = "<<*p<<endl;
return 0;
}
A 编译阶段报错运行阶段报错
B a = 10, *p = 10
C a = 20, *p = 20
D a = 10, *p = 20
E a = 20, *p = 10
&a类型:const int*
C++中被const修饰的变量:该变量已经是一个常量了,还具有替换的作用
编译器在编译代码,在程序中看到对常量内容读取时,会直接使用常量中的内容替换该常量
编程题:
1. 井字棋__牛客网