全部知识点
有如下程序,执行后的输出结果是()。
#include<iostream>
using namespace std;
class TestClass
{
public:
TestClass(int r1,int r2)
{
R1=r1;
R2=r2;
}
void print();
void print()const;
private:
int R1,R2;
};
void TestClass::print()
{
cout<<R1<<","<<R2<<endl;
}
void TestClass::print()const
{
cout<<R1<<","<<R2<<endl;
}
int main()
{
TestClass a(5,4);
const TestClass b(20,52);
b.print();
return 0;
}静态数据成员是为()的数据。
有类声明: class Foo(int bar); 则Foo类的成员bar是()。
有如下定义,其中存在语法错误的行是()。
class Foo
{
public:
Foo(int v): value(v) {} //①
~Foo() {} //②
private:
Foo() {} //③
int value=0; //④
};有如下定义,在标注号码的行中,能被正确编译的是()。
class Test
{
public:
Test() { a=0; c=0; } //①
int f(int a) const { this->a =a; } //②
static int g() { return a; } //③
void h(int b) { Test::b =b; } //④
private:
int a;
static int b;
const int c;
};
int Test::b=0;有类定义 class SAMPLE { int n; public: SAMPLE(int i=0){n=i;} void setValue(int n0); }; ,下列关于setValue函数的实现中,正确的是()。
以下关键字不能用来声明类的访问权限的是()。
下列关于类定义的说法中,正确的是()。
如果派生类以protected方式继承基类,则原基类的protected成员和public成员在派生类中的访问属性分别是()。
下列有关类成员的叙述中,正确的是()。
下列运算函数中,肯定不属于类Value的成员函数的是()。
有如下程序,运行时的输出结果是()。
#include<iostream>
#include<cstring>
using namespace std;
class XCD {
char* a;
int b;
public:
XCD(char* aa, int bb) {
a=new char[strlen(aa)+1];
strcpy(a, aa);
b=bb;
}
char* Geta() { return a; }
int Getb() { return b; }
};
int main() {
char *p1="abcd",*p2="weirong";
int d1=6,d2=8;
XCD x(p1,d1),y(p2,d2);
cout<<strlen(x.Geta())+y.Getb()<<endl;
return 0;
}有如下两个类定义,其中有一个成员变量的定义是错误的,这个变量是()。
class AA{};
class BB {
AA v1,*v2;
BB v3;
int *v4;
};有如下程序,运行时的输出结果是()。
#include<iostream>
using namespace std;
class Point
{
int x,y;
public:
Point(int x1=0,int y1=0):x(x1),y(y1){}
int get(){return x+y;}
};
class Circle
{
Point center;
int radius;
public:
Circle(int cx,int cy,int r):center(cx,cy),radius(r){}
int get(){return center.get()+radius;}
};
int main()
{
Circle c(3,4,5);
cout<<c.get()<<endl;
return 0;
}若AA为一个类,a为该类的私有整型数据成员,getA()为该类的一个非静态公有成员函数,功能是返回a的值。如果X为该类的一个对象,要在类外访问X对象中a的值,正确的访问格式为()。
有如下类定义,创建这个类的对象时,数据成员的初始化顺序是()。
class MyClass{
int b; char a; double c;
public:
MyClass():c(0.0),b(0),a('c'){}
};下列关于类和对象的叙述中,错误的是()。
若有如下类声明,执行语句 MyClass a,b[2],*p[2]; 以后,程序的输出结果是()。
class MyClass{
public:
MyClass(){cout<<1;}
};建立一个类对象时,系统自动调用()。
若MyClass是一个类名,且有如下语句序列: MyClass c1,*c2; MyClass *c3=new MyClass; MyClass &c4=c1; ,上面的语句序列所定义的类对象的个数是()。