繁体   English   中英

如何区分类成员函数和数据成员的声明

[英]How do you distinguish the declaration of a class member function and data member

您如何告诉编译器这是一个函数声明,而不是数据成员:

typedef std::basic_ostringstream<char16_t> foostringstream;
class TextStream: public foostringstream {
    public:
        std::forward_list<TextInstruction> output();
};

问题在于,由于某些令人讨厌的原因,编译器(VS2015.3)在印象中它是一个变量。

问题在于您正在创建一个空类,这不是编译器问题。 想象你做了类似的事情

class Empty{}
int main() {
  Empty a,b;
  assert (&a == &b);
  cout << sizeof(Empty)
}

您期望结果是什么?

编译器始终添加填充以确保&a!=&b,这意味着Empty的size将大于0(通常为1)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM