C++选择题 需要有解释的要解释,好的可以加分。

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都需要解释

1)选C
C错,类中不能声明正在定义的类,
D v4是指向int类型的指针
2)选D
C正确,就是这样的,
D 错误,
静态数据成员对于所有类对象来说只有一份
因此不能在类体内随着每个类对象的初始化而初始化
而是需要在全局数据空间中进行单独的初始化
并且只能存在一份实例
3)选B
拷贝构造函数在以下三种情况下会被调用:
情况一:当用类的一个对象去初始化该类的另一个对象时。
情况二:如果函数的形参是类的对象,调用函数时,进行形参和实参结合时;
情况三:如果函数的返回值是类的对象,函数执行完成返回调用者时。
B赋予应该说的是=吧,要重载了=才能使用,所以用的不是拷贝构造函数
4)选D
A静态数据成员需要在全局数据空间中进行单独的初始化
B和C都可以的
D是正确的
5)选A
在C++中,const对象只能调用const成员函数
A对的,BD如果不是const成员函数的话就不能调用
C常对象的意思是一旦初始化便不允许修改.而不是说对象的数据成员是常数据成员, const对象里可以不是const成员的追问

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");
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-08
1C
BB类型都还没有定义完整,怎么能在其内部定义BB类型呢?v2是AA*类型的,AA类型有声明,就可以定义该类型的指针。
2 D
类的静态成员是属于这个类的,而不是属于某一个类变量的,C++规定const静态类成员可以直接初始化,其他非const的静态类成员需要在类声明以外初始化。
3 B
百度百科,拷贝构造函数 这一词条有详细解释

4 D
静态数据成员是属于这个类的,所以可以用类名来调用。A选项前面已经说过了,B,C显然不对。

5 A
const对象,就是告诉你这个对象不可改变,因此在C++中,const对象只能调用const成员函数。(这是规定),B,C明显不对,D选项违反了规定。本回答被网友采纳

C++选择题 需要有解释的要解释,好的可以加分。
C常对象的意思是一旦初始化便不允许修改.而不是说对象的数据成员是常数据成员, const对象里可以不是const成员的

C++选择题 就1道题3个选项 所以要给出这三个选项的详细解释哦 只要认 ...
纯虚函数是可以是有函数体定义的,所以 A 是错误。纯虚函数的声明必须要以 = 0 结束,所以 B 是正确。派生类不一定需要实现基类的纯虚函数,如果基类的纯虚函数有定义,那么可以不用实现,所以 C 是错误。

一道C++的函数选择题 要求详细解答
为什么?因为,c++的规定就是,当函数的参数是值类型的时候,传递的是值,而不是地址,所以会为这个传来的值 新分配一个地址单元。在这里的实际参数a本来已经有一个地址单元了,然后根据上面这个c++的规定,所以会为a的值另外分配一个地址单元,变量名是w。不过 这个“&”符号你要去学习一下,这个是...

c++选择题求解析
(A) *p[0] 对p的第0个元素(int指针类型)解引用,所以是int变量,正确 (B) *(*p+0) 对于*p+0等价于p[0]所以B和A是一样的, 正确 (C) p[0] p是指针数组,所以p[0]就是它的第一个元素,就是个指针,不是int变量,所以错误。(D) a[0] 这个就没什么好解释了。正确 朋友,...

C++中2道结构方面选择题,详细解释一下 当定义一个结构体变量时,系统...
分配的内存空间为 12 32位且4字节对齐时占用的字节数为12字节。16位2字节对齐时占用的字节数为6字节。 源代码如下:include<stdio.h> struct s{ int a; char b; float c;}; void main(){ printf("%d\\n",sizeof(struct s));}运行结果如下 ...

C++运行时多态的选择题,帮帮新手吧
答案是D 解释:A:构造函数不能声明为虚函数,但在构造函数中可以调用虚函数.在构造函数或析构函数中调用虚函数,将采用静态联编 B,C,D:构造函数不能声明为虚函数,但析构函数可以声明为虚函数.当基类的析构函数声明为虚函数时,无论派生类是否使用virtual关键字说明,派生类的析构函数一定是虚函数,而且,...

一个C++选择题 不要答案要解释 谢谢!
int 整数为2字节,long 整数为4字节;2、(B)--- 错误,因为仅整数中的子集0~255能表示字符;3、(C)--- 错误,因为字符型变量1个字节,多个字符为多个字节;4、(D)--- 正确,字符数据的值是0~255整数值。注意,(A)的“赋予”应当做“赋给”解释,否则有二义性。

急!C++选择题:表达式 x=(3+2,5*6),x+1 运行后,x的值为多少?请详细解释...
30,x=(3+2,5*6)然后x+1 (3+2,5*6) = 30 x=30 x+1没有改变x本身

c++选择题,求大神详解
} T是模板,代表任意类型,也就是说可以是自定义类型也可以是int,char等基本类型。因为这个类重载了 "+" 加号运算符,所以可以认定 "+" 前面的类型是对象,后面的是参数。也就是说C选项的错误是没有重载这种 "+" 运算符,可能你还理解不了。这样B选项可以这么写你就明白了 b1.operator+(3) ...

谁能给我解释下这道c++关于指针的选择题?第五题
char *a[2]={"asdf","ASDF"};声明 a 是char 型 指针数组,数组有2 个元素。一个是指针 a[0], 另一个是 a[1];通过初始化,让 a[0] 指向了 "asdf", a[1] 指向了"ASDF";也就是 a 数组元素 指向 的 值 是 字符串 "asdf" 和 "ASDF";--- a[0] 是 1 个指针,a[1] 是...

相似回答