回 帖 发 新 帖 刷新版面

主题:[讨论]为什么我的缺省构造函数没用啊

#include<iostream>
using namespace std;
class Myclass {

    int xpos,ypos;
public:
    Myclass(int ix,int iy); 
    Myclass():xpos(2),ypos(3){};
    void show ();
};
    Myclass::Myclass(int ix=9,int iy=7) {
    
        xpos=ix;
        ypos=iy;

    }
    void Myclass::show(){
        cout<<"xpos="<<xpos<<endl;
        cout<<"ypos="<<ypos<<endl; 
    }
    int main()
    {
    
        Myclass obj();
        obj.show();
            return 0;
    }


大家帮忙看一下我的缺省构造函数为什么不能用啊,谢谢![code=c]
请填写代码
[/code]

回复列表 (共11个回复)

11 楼

你重复使用了构造函数吧
public:
    Myclass(int ix,int iy); 
    Myclass():xpos(2),ypos(3){};
    void show ();
};
    Myclass::Myclass(int ix=9,int iy=7) { //Myclass(int ix,int iy); 这个就已经调用了构造函数,你在Myclass():xpos(2),ypos(3){};有初始化变量,2个一样的构造函数,有歧异。可以关闭其中一个,默认构造函数是什么都不要去赋初值处理,系统自动的。
    
        xpos=ix;
        ypos=iy;

    }

我来回复

您尚未登录,请登录后再回复。点此登录或注册