你好,打扰一下
我在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;
}类和类之间怎么调用啊???
我在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;
}类和类之间怎么调用啊???
#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'
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;
}
我在console里跑了一次,找到了错误
一直没有在.h里加#include,所以声明时报错。
无语了