关于const关键字说法错误的是()A、const关键字可以修饰对象和成员函数B、const对象不能被修改C、const成员函数不能修改类数据成员D、const可以用于说明类

题目

关于const关键字说法错误的是()

  • A、const关键字可以修饰对象和成员函数
  • B、const对象不能被修改
  • C、const成员函数不能修改类数据成员
  • D、const可以用于说明类

相似考题
参考答案和解析
正确答案:D
更多“关于const关键字说法错误的是()A、const关键字可以修饰对象和成员函数B、const对象不能被修改C、const成员函数不能修改类数据成员D、const可以用于说明类”相关问题
  • 第1题:

    说明静态数据成员时,前面要加关键字const。()


    正确答案:错

  • 第2题:

    要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( )。

    A.const char *p=”ABCD”;

    B.char const *p=”ABCD”;

    C.char *const p=”ABCD”;

    D.const char *const p=”ABCD”;


    参考答案:D

  • 第3题:

    关于常成员函数,下列说法中错误的是

    A.常成员函数无法更新对象的数据成员,但可以访问其他类的公用数据成员或全局变量

    B.常成员函数无法更新对象的数据成员,但是可以更新该对象的常数据成员

    C.常成员函数既可以被常对象调用,也可以被一般对象调用

    D.常成员函数不仅要在声明中用到const修饰符,在定义时也必须使用const修饰符


    正确答案:B
    解析:本题考察const修饰符的使用规则,只要考生理解了const表示“常”的意思就容易举一反三。根据被修饰内容的不同,const在修饰数据成员,成员函数和对象时,具有特定的含义。很明显,常数据成员是不能被修改的,这一点在选项B中被破坏,因此可以确定本题答案为B,如果考生对其他选项难于区分,同样可以得到正确答案。

  • 第4题:

    将关键字const写在函数头之后,函数体之前,说明该函数是一个const成员函数。此时const不是指定函数的返回值,而是修饰______指针。


    正确答案:this
    this 解析:const在修饰指针的时候考生容易混淆。如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。而用const声明了返回值后,const按照"修饰原则"进行修饰,起到相应的保护作用,即保护this指针不被修改。

  • 第5题:

    对于语句const int x=10;的描述正确的是( )。

    A.该语句不允许定义为int const x=10;

    B.在程序中可以重新对X赋值

    C.变量X不能使用+ +运算符

    D.const关键字只能用来修饰常量


    正确答案:C

  • 第6题:

    假定AA是一个类,“AA*abc()const;”是该类中一个成员函数的原型,在该函数体中()向*this或其成员赋值。


    正确答案:不允许

  • 第7题:

    设Time是一个类,现有指针p的定义语句:const Time *p;则通过指针p不可以修改Time类对象的公有数据成员。


    正确答案:正确

  • 第8题:

    若有类W说明class W{int a;public:voidfConst(int&)const;};,则函数fConst的正确定义是()

    • A、void W::fConst(int&k)const{k=a;}
    • B、void W::fConst(int&k)const{k=a++;}
    • C、void W::fConst(int&k)const{cin>>a;}
    • D、void W::fConst(int&k)const{a=k;}

    正确答案:A

  • 第9题:

    判断题
    常成员指的是类体内使用const关键字说明的常数据成员和常成员函数。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第10题:

    判断题
    设Time是一个类,现有指针p的定义语句:const Time *p;则通过指针p不可以修改Time类对象的公有数据成员。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第11题:

    单选题
    已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。
    A

    void print()const

    B

    const void print()

    C

    void const print()

    D

    void print(const)


    正确答案: C
    解析: 暂无解析

  • 第12题:

    单选题
    若有类W说明class W{int a;public:voidfConst(int&)const;};,则函数fConst的正确定义是()
    A

    void W::fConst(int&k)const{k=a;}

    B

    void W::fConst(int&k)const{k=a++;}

    C

    void W::fConst(int&k)const{cin>>a;}

    D

    void W::fConst(int&k)const{a=k;}


    正确答案: C
    解析: 暂无解析

  • 第13题:

    在成员函数的函数类型前加上const关键字,则该成员函数就是常量成员函数。()

    此题为判断题(对,错)。


    正确答案:错误

  • 第14题:

    有如下类定义:

    class Bag {

    public:

    Bag(int p,char s='M'):price(p),size(s) { count++; }

    ~Bag() { count--; }

    int GetPrice() { return price; }

    int GetPrice() const { return price; }

    void SetPrice(int val) const { price=val; }

    private:

    int price;

    char size;

    static int count;

    };

    下列关于类成员的叙述中,正确的是( )。

    A. 成员函数GetPrice存在重定义

    B.构造函数的参数不能设置默认值

    C.析构函数中不能访问静态数据成员

    D.成员函数SetPrice不能定义为常函数


    参考答案:A

  • 第15题:

    某类中有一个无参且无返回值的常成员函数Show,则正确的Show函数原型是

    A.const void Show();

    B.void const Show();

    C.void Show()const;

    D.void Show(const);


    正确答案:C
    解析:本题主要考查对常成员函数的掌握。常成员函数的说明格式为:
      <返回类型><成员函数名>(<参数表>)const;
      本题中的常成员函数无参无返回值,故正确答案为C。

  • 第16题:

    已知String类定义如下:

    class String

    {

    public:

    String(const char *str = NULL); // 通用构造函数

    String(const String &another); // 拷贝构造函数

    ~ String(); // 析构函数

    String & perater =(const String &rhs); // 赋值函数

    private:

    char *m_data; // 用于保存字符串

    };

    尝试写出类的成员函数实现。


    正确答案:

     

    String::String(const char *str)
    {
    if ( str == NULL ) //strlen在参数为NULL时会抛
    异常才会有这步判断
    {
    m_data = new char[1] ;
    m_data[0] = '\0' ;
    }
    else
    {
    m_data = new char[strlen(str) + 1];
    strcpy(m_data,str);
    }
    }
    String::String(const String &another)
    {
    m_data = new char[strlen(another.m_data) + 1];
    strcpy(m_data,other.m_data);
    }
    String& String::operator =(const String &rhs)
    {
    if ( this == &rhs)
    return *this ;
    delete []m_data; //删除原来的数据,新开一块内

    m_data = new char[strlen(rhs.m_data) + 1];
    strcpy(m_data,rhs.m_data);
    return *this ;
    }
    String::~String()
    {
    delete []m_data ;
    }

  • 第17题:

    已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。

    • A、void print()const
    • B、const void print()
    • C、void const print()
    • D、void print(const)

    正确答案:A

  • 第18题:

    代码public static const int A=1;中的错误是()

    • A、 A需要定义类型
    • B、 格式错误
    • C、 const不能用static修饰符
    • D、 const不能用public修饰符

    正确答案:C

  • 第19题:

    常成员指的是类体内使用const关键字说明的常数据成员和常成员函数。


    正确答案:正确

  • 第20题:

    单选题
    关于const关键字说法错误的是()
    A

    const关键字可以修饰对象和成员函数

    B

    const对象不能被修改

    C

    const成员函数不能修改类数据成员

    D

    const可以用于说明类


    正确答案: B
    解析: 暂无解析

  • 第21题:

    单选题
    某类中有一个无参且无返回值的常成员函数Show,则正确的Show函数原型是(  )。
    A

    const void Show();

    B

    void const Show();

    C

    void Show() const;

    D

    void Show(const);


    正确答案: B
    解析:
    常成员函数的说明格式如下:<返回类型><成员函数名>(<参数表>)const,所以对于本题来说无参且无返回值的常成员函数Show,其原型是void Show() const。

  • 第22题:

    单选题
    已知函数print()没有返回值,如果在类中将之声明为常成员函数,正确的是(  )。
    A

    void print()const;

    B

    const void print();

    C

    void const print();

    D

    void print(const);


    正确答案: A
    解析:
    const成员函数说明格式如下:<返回类型><成员函数名>(<参数表>)const。

  • 第23题:

    单选题
    代码public static const int A=1;中的错误是()
    A

     A需要定义类型

    B

     格式错误

    C

     const不能用static修饰符

    D

     const不能用public修饰符


    正确答案: D
    解析: 暂无解析