我有这个问题
"abc.h"
Class abc{
Private:
bool ** xyz;
Public:
abc * fun();
}
"abc.cpp"
#include "abc.h"
abc abc::*fun(){
xyz=new bool*[10];
for(int i=0;i<10;i++)
{
xyz[i]= new bool[10];
}
}
我正在获取 xyz未声明的标识符。请帮助我。我也试过
abc::xyz=new bool*[10];
它也无法正常工作
答案 0 :(得分:1)
编译器需要查看类型abc
的定义,为此,您需要包含在cpp文件中定义它的标头。
<强> “abc.h”强>
class abc{
bool ** xyz;
void fun();
};
<强> “abc.cpp”强>
#include "abc.h" <--------------This!
void abc::fun(){
**xyz=new bool [10];
}
答案 1 :(得分:1)
这:
abc abc::*fun()
应该是这样的:
abc * abc::fun()
答案 2 :(得分:0)
您显示的代码无法提供您发布的错误消息。
将此文件放入头文件中:
class abc {
public:
abc* fun();
private:
bool ** xyz;
};
将其完全放入源文件中:
#include "abc.h"
abc* abc::fun() {
xyz=new bool*[10];
for(int i=0;i<10;i++)
{
xyz[i]= new bool[10];
}
return this; // What would you like to return???
}
这必须至少编译。
我发现你发布的代码中有一些奇怪的东西。关键字class
,public
和private
不以大写字母开头。
类声明之后是;
。
虽然可能存在abc abc::*fun()
,但我几乎可以肯定您的意思是abc* abc::fun()
。
abc::fun()
不返回任何内容。