关于inline函数在头文件还是cpp的BUG问题

class Screen
{
public:
	typedef string::size_type pos;
	void some_member() const;
	//////////////////
	Screen() = default;
	Screen(pos ht, pos wt):height(ht), weight(wt), contents(ht*wt, ' ') {}
	Screen(pos ht, pos wt, char c) :height(ht), weight(wt), contents(ht*wt, c) {}

	////////////////////

	char get() const { return contents[cursor];}
	inline char get(pos r, pos c) const;
	Screen & move(pos r, pos c);
	Screen& set(char a);
    Screen& set(pos ,pos ,char);
	const Screen & display(ostream & os) const;

	////////////////////

	~Screen();
	

private:
	pos cursor = 0;
	pos height = 0, weight = 0;
	string contents;
	mutable size_t access_ctr;
};

而关于set的实现

inline Screen& Screen::set(pos r, pos c, char a)
{
	contents[r * weight + c] = a;
	return *this;
}

如果放在cpp文件中会出现链接器出错的问题

放在头文件中,不会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值