自从我完成C++后,我已经有一段时间了。我有以下结构:关于结构的困惑
struct sPage { U16 _; };
typedef sPage tPage;
但是当我尝试这样做:
tPage pagenumber = 0;
我得到以下错误:“没有合适的构造存在于从int转换为S页面”。我究竟做错了什么?
自从我完成C++后,我已经有一段时间了。我有以下结构:关于结构的困惑
struct sPage { U16 _; };
typedef sPage tPage;
但是当我尝试这样做:
tPage pagenumber = 0;
我得到以下错误:“没有合适的构造存在于从int转换为S页面”。我究竟做错了什么?
你需要花括号初始化:
tPage pagenumber = {0};
,或使自己的构造函数:
struct sPage
{
U16 _;
sPage(U16 val) : _(val) { }
};
这样的隐式构造函数可能会有意想不到的效果,但它们可能值得注意。 –
你忘了括号,同时初始化。做到像
tPage pagenumber = { 0 };
使用大括号初始化'TPAGE页面编号= {0};' – greatwolf
更容易,'t第页面编号{};' – chris
你不能说'tPage'是一个整数,而它包含一个整数。这就是你如何使用它,作为一个聚合而不是标量。 –