TestClass类定义如下: class TestClass { private: int id; char gender; char木phone; public: TestClass():id(

admin2019-03-05  9

问题 TestClass类定义如下:
class TestClass
    {
    private:
    int id;
    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、TestClass myObj(1,‘m’);
D、TestClass myObj;

答案B

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

最新回复(0)