#include "StdAfx.h"
#include "BaseWeb.h"
#include <string> 
#include <sstream> 
using namespace std;BaseWeb::BaseWeb(void)
{
}BaseWeb::~BaseWeb(void)
{
}string Head()
{
return "Content-Type: text/html\r\n\r\n";
}上面Head()是class BaseWeb类中的一个函数,想别一个类中调用,但老是出错,提示“BaseWeb”: 未声明的标识符,语法错误 : 缺少“;”(在标识符“wb”的前面),“wb”: 未声明的标识符,语法错误 : 标识符“BaseWeb”
下面是另一个类的代码,
#include "StdAfx.h"
#include "Web.h"Web::Web(void)
{
BaseWeb wb=new BaseWeb();
}Web::~Web(void)
{
}编译不通过。
为什么不能在这个类中写BaseWeb wb=new BaseWeb();
这样调用类?
请帮助,谢谢大家!

解决方案 »

  1.   

    上面的BaseWeb类是在文件BaseWeb.H里的
    Web类是在文件Web.H里的,
    在Web里的函数里如果写 BaseWeb wb;就报错。但是如果,把Web.H文件删除,直接把Web类写在BaseWeb.H文件里,这样就可以在Web类里调用BaseWeb类了。
    真是很奇怪,难道不同文件之间的类不能互相调用吗?
      

  2.   

    在Web.cpp里加上 #include "BaseWeb.h"
     
      

  3.   

    BaseWeb wb=new BaseWeb();
    Java转过来的吧,BaseWeb wb就已经定义了一个类的对象了。
    如果要用new需要写成指正 BaseWeb* web = new BaseWeb();
    // 类成员函数定义方式也不太对,像下面这个样子
    string BaseWeb::Head()
    {
    return "Content-Type: text/html\r\n\r\n";
    }还有引用BaseWeb的文件内也没有包含baseweb.h
      

  4.   

    BaseWeb wb=new BaseWeb()改成:
    BaseWeb *wb=new BaseWeb();