回 帖 发 新 帖 刷新版面

主题:C++类初始化问题。。求教,

我是初学者,高手勿喷
我用的是VC6.0
字符串只能用字符数组输入很头疼。
我想问一下下边程序的字符数组的初始化为什么错。。

#include <iostream.h>
#include <string>
//using namespace std;
class qwer
{
public:
    qwer(char y[]);
    friend bool operator == (qwer &,qwer &);
    friend bool operator > (qwer &,qwer &);
    friend bool operator < (qwer &,qwer &);
    void f();
    void compare(qwer &,qwer &);
private:
    char x[30];
}
qwer::qwer(char y[20])
{
    strcpy(x,y);            //这里有问题 这样不对吗?
}
void qwer::f()
{
    cout<<x;
}


bool operator == (qwer &q1,qwer &q2)
{
    if( strcmp(q1.x,q2.x)==0)
        return true;
    else return false;
}
bool operator > (qwer &q1,qwer &q2)
{
     if(strcmp(q1.x,q2.x)>0)
         return true;
     else return false;
}
bool operator < (qwer &q1,qwer &q2)
{
    if(strcmp(q1.x,q2.x)<0)
     return true;
     else return false;
}
void compare(qwer &q1,qwer &q2)
{
    if((operator == (q1,q2))==1)
    {
        q1.f();cout<<"==";q2.f();
    }

    else if((operator > (q1,q2)==1))
    {
        q1.f();cout<<">";q2.f();
    }
    else if((operator < (q1,q2)==1))
    {
        q1.f();cout<<"<";q2.f();
    }
    cout<<endl;
}
int main()
{
    qwer q1("China"),q2("Germany"),q3("Itaty"),q4("China");
    compare(q1,q2);
    compare(q1,q4);
    compare(q2,q3);
    compare(q2,q4);
    compare(q3,q4);
    return 0;
}

回复列表 (共3个回复)

沙发

在线等

板凳


大哥,你qwer类{}后面少了一个分号...所以程序检查不到你构造函数...而你原来的构造函数却被认为是一个带有返回值的函数

3 楼

原来少个分号。。。。

谢谢指点。

刚学类 好多东西还都不会。。

我来回复

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