has-a的关系,没有复制构造函数,这么初始化可以么StackSeq::StackSeq (IStack const & stack )

疯魔症 疯魔症 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
两个类StackSeq和IStack,IStack没有复制构造函数,
StackSeq::StackSeq (IStack const & stack )
: _iCur (0), _stack (stack) // init reference{}。
个人觉得有问题
一本书上看到的,我感觉不对,但编译没错,可能使用的都是基本数据类型,没有使用动态变量
所以可以编译,但是不严谨。
#if !defined (STACK_H)
#define STACK_H
// (c) Bartosz Milewski 2000

const int maxStack = 16;

class IStack
{
friend class StackSeq; // give it access to private members
public:
IStack (): _top (0) {}
void Push (int i);
int Pop ();
private:
int _arr [maxStack];
int _top;
};

class StackSeq
{
public:
StackSeq (IStack const & stack);
bool AtEnd () const; // are we done yet?
void Advance (); // move to next item
int GetNum ()const; // retrieve current item
private:
IStack const & _stack; // reference to stack
int _iCur; // current index into stack
};

#endif

StackSeq::StackSeq (IStack const & stack )
: _iCur (0), _stack (stack) // init reference
{}
...全文
评论 7
收藏 已收藏
分享
返回顶部
疯魔症
C语言 70,039 成员 243,237 内容