更多“为myclass类对象以成员函数形式重载前置++运算符的声明应该为myclass operator++(int);”相关问题
  • 第1题:

    假定MyClass为一个类,则该类的拷贝构造函数的声明语句为

    A.MyClass&(MyClassx);

    B.MyClass(MyClassx);

    C.MyClass(MyClass &x);

    D.MvClass(MyClass *x);


    正确答案:C
    解析:本题考核拷贝构造函数的概念。声明拷贝构造函数的格式为:类名>::拷贝构造函数>(const类名>&引用名>);,其中const是修饰符可以省略。

  • 第2题:

    有如下类定义: class MyClass { public: private: ______________________________________ int data; }; 若要为MyClass类重载流输入运算符“>>”,使得程序中可以“cin>>obj;”的形式改变MyClass类的对象0bj中数据成员data的值,则横线处的声明语句应为( )。

    A.friend istream& operator>>(istream&is,MyClass&A.;

    B.friend istream&operator>>(istream&is,MyClass A.;

    C.istream&operator>>(istream&is,MyClass&A.;

    D.istream&operator>>(istream&is,MyClass A.;


    正确答案:A
    本题考查重载流运算符“>>”,根据重载规则,本题答案为A。

  • 第3题:

    下列是重载乘法运算的函数原型声明,其中错误的是

    A.MyClass operator*(double,double);

    B.MyClass operator*(double,MyClass);

    C.MyClass operator*(MyClass,double);

    D.MyClass operator*(MyClass,MyClass);


    正确答案:A

  • 第4题:

    假定MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为( )

    A.MyClass&(MyClass x);

    B.MyClass(MyClass x)

    C.MyClass(MyClass &x);

    D.MyClass(MyClass *x)


    正确答案:C
    解析:拷贝构造函数是一个特殊的构造函数,它用一个已知的对象初始化一个正在创建的同类对象,它的一般格式是:类名::类名(const类名&引用对象名)。

  • 第5题:

    下面重载乘法运算符的函数原型声明中错误的是( )

    A.TestClass operator *(MyClass,double);

    B.TestClass operator *(double,MyClass);

    C.TestClass operator *(double,double);

    D.TestClass operator *(MyClass,MyClass);


    正确答案:C

  • 第6题:

    有如下类定义: classMyClass( public: ____ private: intdata; }; 若要为Myclass类重载流输入运算符>>,使得程序中可以“cin>>obj;”形式输入MyClasS类的对象obj,则横线处的声明语句应为( )。

    A.friendistream&operator>>(istream&is,MyClass&a);

    B.friendistream&operator>>(istream&is,MyClassa);

    C.istream&operalor>>(istream&is,MyClass&a);

    D.istream&operator>>(istream&is,Myclassa);


    正确答案:A
    A。【解析】重载输入、输出的声明必须是友元,传入的对象必须是地址,否则操作对象的值是没有意义的。下面是重载输入运算符示例:(Dev-C++)#include<cstdlib>#include<iostream>usingnamespacestd;classMyClass{public:intdata;public:MyClass(intdata);friendistream&operator>>(1stream&is,MyCla-ss&obj);};MyClass::MyClass(iutdata){data=data;}istream&operator>>(istream&is,MyClass&obj){is>>obj.data;returnis;}intmain(void){MyClassobj(12);cin>>obj;eout<<endl;cout<<obj.data;system(”PAUSE”):returnEXIT—SUCCESS;}

  • 第7题:

    假定MyCIass为一个类,那么下列的函数说明中,( )为该类的析构函数。

    A.void~MyClass();

    B.~MyClass(int n);

    C.MyClass();

    D.~MyClass();


    正确答案:D
    解析: C抖语言中析构函数为符号“~”加类名,且析构函数没有返回值和参数,故前不加void关键字。所以正确的形式应该是-MyClass()。

  • 第8题:

    前置自增运算符++重载为类的友元函数的形式为【 】,重载为类的成员函数的形式为【 】。 (设类为A,类对象为a)


    正确答案:friend A operator++(A &) a. operator++().
    friend A operator++(A &) a. operator++().

  • 第9题:

    假定MyClass 为一个类,则该类的拷贝构造函数的声明语句为( )。

    A.MyClass& (MyClass x);

    B.MyClass (MyClass.x);

    C.MyClass (MyClass &x);

    D.MyClass (MyClass *x);


    正确答案:C

  • 第10题:

    对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句应该是 ( )。 class MyClass { public: MyClass(int X){n=x;} void SetNum(int nl){n=nl} private: int n; } int f() { MyClass*ptr=new MyClass(45); ______ }

    A.MyClass(50)

    B.SetNum(50)

    C.ptr->SetNum(50)

    D.ptr->n=50


    正确答案:C

  • 第11题:

    如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。

    Class myClass{

    private:

    int data;

    public:

    myClass(int value);//构造函数

    myClass(const【 】anotherObject);//拷贝构造函数

    }


    正确答案:myClass&
    myClass& 解析:本题考查的知识点是:拷贝构造函数。拷贝构造函数定义的一般格式如下:
    类名>::类名)(const类名>&引用对象名>)
    {
    //拷贝构造函数体
    }
    而在类中的声明部分则可省去类名>::。故本题应该填myClass&。

  • 第12题:

    单选题
    假定MyClass为一个类,那么下列的函数说明中,(  )为该类的析构函数。
    A

    void ~MyClass();

    B

    ~MyClass(int n);

    C

    MyClass();

    D

    ~MyClass();


    正确答案: A
    解析:
    C++语言中析构函数格式为:符号“~”加类名,且没有返回值和参数。

  • 第13题:

    假定MyClass 为一个类,则该类的拷贝构造函数的声明语句为 ( )。

    A.MyClass& (MyClass x);

    B.MyClass (MyClass x);

    C.MyClass(MyClass &x);

    D.MyClass (MyClass *x);


    正确答案:C
    解析:声明拷贝构造函数的格式为:类名>::拷贝构造函数>(const类名>&引用名>);其中const是修饰符可以省略。

  • 第14题:

    假定MyClass为一个类,那么下列的函数说明中,( )为该类的析构函数。

    A.void~MyClass();

    B.~MyClass(int n)

    C.MyClass();

    D.~MyClass();


    正确答案:D
    解析: C++语言中析构函数为符号“~”加类名,且析构函数没有返回值和参数,故前不加void关键宇。所以正确的形式应该是~MyClass()。

  • 第15题:

    下面是类MyClass的定义,对定义中各种语句描述正确的是( )。

    class MyClass { publiC: void MyClass(int a) //①

    { x=a; ) int func(int a,int b) //②

    { x=a; y=b; } int func(int a,int b,int c=0) //③

    { x=a; y=b; z=c; } static void resetValue() //④

    { x=0; } private: int X,y,Z; };

    A.语句①是类MyClass的构造函数定义

    B.语句②和语句③实现类成员函数的重载

    C.语句④实现对类成员变量x的清零操作

    D.语句①、②、③和④都不正确


    正确答案:D
    解析:类的构造函数没有返回类型,所以语句①是错误的;语句②和语句③将会使函数func()的调用产生歧义;成员函数resetValue()是静态成员函数,那么它不能访问类MyClass中的非静态数据成员,所以语句④也不正确。

  • 第16题:

    假定MyClass为一个类,则该类的拷贝构造函数的声明语句为( )

    A.MyClass(MyClass x);

    B.MyClass(MyClass&x);

    C.MyClass(&x);

    D.MvClass(x);


    正确答案:B
    解析:拷贝构造函数也是构造函数,所以函数名字为MyClass,但它只有一个参数,这个参数是本类的对象,即x;而且采用对象的引用的形式,也就是&x。所以本题答案是B)

  • 第17题:

    下列类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。

    class myClass{

    private:

    int data;

    public:

    myClass(int value);//构造函数

    myClass(const______another Object);//拷贝构造函数

    }


    正确答案:myClass&
    myClass& 解析:此题考查的是复制构造函数。复制构造函数定义的一般格式如下:类名::类名(const类名&引用对象名){复制构造函数体)。而在类中的声明部分可省去“类名::”。

  • 第18题:

    下面是类MyClass的定义,对定义中各语句描述正确的是( )。 class MyClass { private: int x,y, z; public: void MyClass(int A) { x=a; } //① int f(int a, int B) //② { x=a; y=b; } int f(int a,

    A.语句①是类MyClass 的构造函数的定义

    B.语句②和③实现类成员函数的重载

    C.语句④实现对类成员变量x的更新操作

    D.语句①、②、③和④都不正确


    正确答案:D
    解析:在C++中构造函数没有返回类型,所以语句①是错误的。语句②和语句③在进行f(x,y)调用时会产生二义性。静态成员函数不能直接访问类中说明的非静态成员。所以语句④也是错误的。

  • 第19题:

    对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句应该是( )。 class MyClass { public: MyClass(int X){n:x;} void SetNum(int n1){n=n1;} private: int n; } int f() { MyClass *ptr=-new MyClass(45); ______ }

    A.MyClass(50)

    B.SetNum(50)

    C.ptr->SetNum(50)

    D.ptr->n=50


    正确答案:C

  • 第20题:

    下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该类的实现。

    class Myclass {

    public:

    Myclass(int num);

    ~ Myclass( );

    public:

    int *p;

    };

    Myclass: :Myclass( int hum) {

    【 】

    Myclass:: ~ Myelass( ) {

    【 】;

    }。


    正确答案:P=new int(a)、delete P
    P=new int(a)、delete P 解析:new和delete的用法。

  • 第21题:

    下列是重载乘法运算符的函数原型声明,其中错误的是( )。

    A.MyClass operator*(double,double);

    B.MyClass operator*(double,MyClass);

    C.MyClass operator*(MyClass,double);

    D.MyClassoperator*(MyClass,MyClass);


    正确答案:A
    解析: 此题考查的是乘法运算符的重载函数原型声明。因为操作的对象是类对象,所以重载函数的参数至少有一个是类对象。故选项A)中两个参数都为double型是错误的。

  • 第22题:

    下面是类MyChss的定义,对定义中语句描述正确的是( )。class MyClass{public:void MyClass(int a){X=a;) //①int f(int a, int b) //②{X=a;Y=b;}int f(int a,int b,int c=0) //③{X=a;Y=b;Z=c;stahc void g (){X=10;) //④private:int X,Y,Z;};

    A.语句①是类MyClass的构造函数定义

    B.语句②和语句③实现类成员函数的重载

    C.语句④实现对类成员变量X的更新操作

    D.语句①②③和④都不正确


    正确答案:D

  • 第23题:

    对于下面定义的类MyClass,请在函数f( )中添加对象成员把n的值修改为50。

    class MyClass

    {

    public:

    MyClass(int x){n=x;}

    void SetNum(int n1){n=n1;}

    private:

    int n;

    };

    void f()

    {

    My Class*ptr=new MyClass(45);

    【12】

    }


    正确答案:
    ptr->SetNum(50);

  • 第24题:

    单选题
    下列是重载乘法运算符的函数原型声明,其中错误的是(  )。
    A

    MyClass operator*(double,double);

    B

    MyClass operator*(double,MyClass);

    C

    MyClass operator*(MyClass,double);

    D

    MyClass operator*(MyClass,MyClass);


    正确答案: A
    解析:
    C++已经提供了求两个double型数据乘法的运算符*,不能再定义同样的运算符,编译器不能识别是否执行运算符重载函数。