1)有如下两个类定义:classAA{};class BB{AA v1,*v2;BB v3; int *v4;}
其中有一个成员变量的定义是错误的,这个变量是()
A v1 B v2 C v3 D v4//只需要解释C和B
2)下列关于构造函数的叙述中,错误的是()
A 构造函数可以重载。
B 构造函数可以设置默认参数
C 构造函数在定义类变量时自动执行
D 构造函数可以对静态数据成员进行初始化
//主要解释CD 尤其是D
3)在下列情况中,不会调用拷贝构造函数的是()
A 用一个对象去初始化同一个类的另一个对象时
B将类的一个对象赋予该类的另一个对象时
C 函数的形参是类的对象,调用函数进行形参和实参结合时
D 函数的返回值是类的对象,函数执行返回调用时
//每项都要有解释 谢谢哦
4)下面对静态数据成员的叙述中正确的是()
A 静态数据成员可以再类体内进行初始化
B 静态数据成员不可以被类的对象调用
C 静态数据成员不能受private控制符的作用
D静态数据成员可以用类名调用
//ABCD都需要解释
5)由于常对象不能被更新,因此()
A 通过常对象只能调用它的常成员函数
B 通过常对象只能调用静态成员函数
C 常对象的成员都是常成员
D 通过常对象可以调用任何不改变对象值的成员函数
//ABCD都需要解释
3)情况2,3。
4)D怎么用类名调用?
5)C const对象里可以不是const成员的
或许这些遗留问题给个具体实例,我就能理解了。
3)
情况2:
class A{};
void fn(A a)
{
}
void main()
{
A b;
fn(b);
}
情况3:
class A{};
A fn()
{
A a;
return a;
}
4)
#include
#include
class A
{
public:
static int a;
};
int A::a = 1;
void main(int argc, char *argv[])
{
printf("%d\n",A::a);
A::a = 2;
printf("%d\n",A::a);
system("PAUSE");
}
5)
#include
#include
class A
{
public:
int a;
const int b;
A():b(1),a(0)
{
}
};
void main(int argc, char *argv[])
{
const A a;
printf("%d %d",a.a,a.b);
system("PAUSE");
}