毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 移动平台 >> 正文

C2039: “<<”: 不是“Customer”的成员

更新时间:2012-10-11:  来源:毕业论文

customer.h

C/C++ code
#ifndef _CUSTOMER_H
#define _CUSTOMER_H

#include <QString>
#include <QTextStream>
#include <QObject>

class Customer:public QObject
{
    Q_OBJECT  学校运动会闭幕词 public:
    explicit Customer(const QString &name);

    QString toString() const;
   
    friend QTextStream& operator << (QTextStream &out, const Customer &c);
};


#endif

 


customer.cpp

C/C++ code
#include "customer.h"

#include "customer.h"

Customer::Customer(const QString &name)
{
    setObjectName(name);
}

QString Customer:: toString() const
{
    QString retval =  QString("Student ") + objectName();
    return retval;
}

QTextStream& Customer::operator << (QTextStream &out, const Customer &c)
{
    out << c.toString() ;
    return out;
}

 

 

main.cpp


C/C++ code
#include <QApplication>
#include <QList>
#include <QDebug>
#include "customer.h"

int main()
{
    QObject root;
    Customer *name1 = new Customer("a");
    name1->setParent(&root);
    Customer *name2 = new Customer("b");
    name2->setParent(&root);
    QObject *name3 = new QObject;
    name3->setObjectName("c");
    name3->setParent(&root);

    QList<Customer *> list = root.findChildren<Customer*>();
    foreach(const Customer *current ,list)
    {
        qDebug() << current->toString() << " ";
    }

    return 0;

}大家看头文件 我把输出操作符放类中友元访问 报错: 错误:C2039: “<<”: 不是“Customer”的成员 为什么会报错呢? 如果把这个函数去掉friend 放类外 实现文件去掉Customer:: 编译就通过 我记得在C++环境下输出操作符重载可以作为友元放在类中的。。。。 为什么会这样呢?

QTextStream& Customer::operator << (QTextStream &out, const Customer &c)
{
  out << c.toString() ;
  return out;
}

啊~你的实现表示的是在Customer这类里的嘛。。。 

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。