C++选择题 需要有解释的要解释,好的可以加分。
1)有如下两个类定义:classAA{};classBB{AAv1,*v2;BBv3;int*v4;}其中有一个成员变量的定义是错误的,这个变量是()Av1Bv2Cv3D...
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都需要解释 展开
其中有一个成员变量的定义是错误的,这个变量是()
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都需要解释 展开
2个回答
展开全部
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成员的
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");
}
展开全部
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选项违反了规定。
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选项违反了规定。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询