你好,打扰一下
我在MFC DLL里定义了两个一般类 ResFee 和SmsOperator   
在SmsOperator 里定义了一个方法,返回类型为ResFee,
ResFee只是封装信息用的类
ResFee SmsOperator::getBalance()
{
ResFee res;
return res;
}为什么不能通过编译啊源码如下:
ResFee  头文件:class ResFee  
{
public:
ResFee();
virtual ~ResFee();
int balance;};ResFee  源文件
ResFee::ResFee()
{
balance = -1;
}ResFee::~ResFee()
{}
SmsOperator  头文件class SmsOperator  
{
public:
SmsOperator();
virtual ~SmsOperator();
ResFee getBalance();};
SmsOperator源文件
ResFee SmsOperator::getBalance()
{
ResFee* res = new ResFee;
return *res;
}类和类之间怎么调用啊???

解决方案 »

  1.   


    #include "stdafx.h"
    #include "ClassSmsOperator.h"
    #include "SmsOperator.h"
    #include "ResFee.h"
    #ifdef _DEBUG
    #undef THIS_FILE
    static char THIS_FILE[]=__FILE__;
    #define new DEBUG_NEW
    #endif
    头文件加了啊错误如下:
    SmsOperator.cpp
    f:\c++\mfc dll\classsmsoperator\smsoperator.h(17) : error C2143: syntax error : missing ';' before '*'
    f:\c++\mfc dll\classsmsoperator\smsoperator.h(17) : error C2501: 'ResFee' : missing storage-class or type specifiers
    f:\c++\mfc dll\classsmsoperator\smsoperator.h(17) : error C2501: 'getBalance' : missing storage-class or type specifiers
    F:\C++\MFC DLL\ClassSmsOperator\SmsOperator.cpp(32) : error C2556: 'class ResFee *__thiscall SmsOperator::getBalance(void)' : overloaded function differs only by return type from 'int *__thiscall SmsOperator::getBalance(void)'
            f:\c++\mfc dll\classsmsoperator\smsoperator.h(17) : see declaration of 'getBalance'
    F:\C++\MFC DLL\ClassSmsOperator\SmsOperator.cpp(32) : error C2371: 'getBalance' : redefinition; different basic types
            f:\c++\mfc dll\classsmsoperator\smsoperator.h(17) : see declaration of 'getBalance'
      

  2.   

    你的代码,改成这样的。。源码如下:
    ResFee 头文件:
    #include <iostream>
    using namespace std;class ResFee  
    {
    public:
    ResFee();
    virtual ~ResFee();
    int balance;

    };ResFee 源文件
    #include "ResFee.h"
    ResFee::ResFee()
    {
    balance = -1;
    }ResFee::~ResFee()
    {
    cout<<"ResFee析构函数执行..."<<endl;
    }
    SmsOperator 头文件#include "ResFee.h"
    class SmsOperator
    {
    public:
    SmsOperator();
    virtual ~SmsOperator();
    ResFee getBalance();
    };SmsOperator源文件
    #include "SmsOperator.h"
    SmsOperator::SmsOperator()
    {
    }
    SmsOperator:: ~SmsOperator()
    {
    cout<<"SmsOperato析构函数执行..."<<endl;
    }ResFee SmsOperator::getBalance()
    {
    cout << "调用getBalance函数!" <<endl;
    ResFee res;
    return res;
    }main源文件#include "SmsOperator.h"int main()
    {
    SmsOperator *sm = new SmsOperator;
    sm->getBalance();
    delete sm;
    sm = NULL;
    return 0;
    }
      

  3.   

    谢谢tianyake1986
    我在console里跑了一次,找到了错误
    一直没有在.h里加#include,所以声明时报错。
    无语了
      

  4.   

    是不是该赏我点分啊o(≧v≦)o