TestClass类定义如下: class TestClass { private: intid; char gender; char *phone; public: TestClass():

admin2013-05-30  20

问题 TestClass类定义如下:
    class TestClass
    {
    private:
    intid;
    char gender;
    char *phone;
    public:
    TestClass():id(0),gender(‘#’),phone(NULL){}
    TestClass(int no,char ge=‘#’,char*ph=NULL)
    {id=no;gender=ge;phone=ph;}
    };
    下面类对象定义语句中错误的是(             )。

选项 A、TestClass myObj(1);
B、TestClass myObj(2,“11101111155”);
C、festClass myObj(1,‘m’);
D、TestClass myObj;

答案B

解析 B)中由于有两个参数,所以其调用了第二个构造函数,第二个构造函数的两个缺省参数,在调用时,实参会按从左到右的顺序传给形参,所以第二个参数“11101111155”会传递给形参ge,而原型中的ge为字符型,实参为指向字符的指针,所以在编译时会出现错误。A)与C)都能够正确的实现参数的传递。对于D),由于在创建TestClass的实例myObj时,没有参数,所以其调用了第一个构造函数。
转载请注明原文地址:https://jikaoti.com/ti/fOE0FFFM
0

最新回复(0)