永发信息网

C++中关于类嵌套中的构造函数的一个问题,新手求教!

答案:2  悬赏:70  手机版
解决时间 2021-01-31 04:14
  • 提问者网友:动次大次蹦擦擦
  • 2021-01-30 12:33
我在公共头文件里写了类的声明,
其中有一段如下:
class encoder
{
private:
unlimitedArray dict(HASH_TABLE_SIZE,hashFunc);
int prev;//256=START
int updateDict(int prev,char c);
void memStore(int code);
void dumpFile(const string fileName);

public:
encoder(void);
void processString(const string s);
};

其中第二行:unlimitedArray dict(HASH_TABLE_SIZE,hashFunc); 被编译器报错,让我填写类型。
可是这是我定义的类的构造函数,用于初始化unlimitedArray类。
我该如何调用该构造函数初始化dict呢?
能否先声明再在encoder的构造函数里初始化dict呢?

class unlimitedArray
{
private:
int top;
vector< dictEle > data;
hashTable hstb;
public:
int addElement(int prev,char code);
dictEle *ithElement(int i);
unlimitedArray(int hashTableSize,int (*hashFunc)(int,char));
bool isExist(int prev,char code);
};
最佳答案
  • 五星知识达人网友:空山清雨
  • 2021-01-30 13:40
unlimitedArray类在哪个头文件?是否包含该头文件?
另外最好把编译器给出的错误贴出来。
我的问题是encoder类所在的头文件是否包含了untimitedArray所在的头文件?
比如encoder在a.h,untimitedArray在b.h,那么
在encoder类的顶部要#include "b.h"
全部回答
  • 1楼网友:独钓一江月
  • 2021-01-30 14:42
1. c++是不鼓励在函数体内定义函数,但是也是可以的 2. 上面的程序属于函数调用,是正常的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯