作者HiSUrMy (HiSUrMy)
标题Re: [问题] c++ class 内部 array size 宣告
时间Sun Dec 9 18:16:56 2018
#ifndef A_H
#define A_H
class A
{
private:
static const int SIZE = 4;
int a[SIZE];
...
public:
...
};
#endif
or
#ifndef A_H
#define A_H
class A
{
private:
enum {SIZE = 40
};
int a[SIZE];
...
public:
...
};
#endif
※ 引述《QQrzQQ (QQ)》之铭言:
: #ifndef A_H
: #define A_H
: #define SIZE 4
: class A{
: int a[SIZE];
: };
: #endif
: 如前面所写的
: 因为我在使用上呼叫不同标头档
: 会遇到SIZE重复定义的问题
: 试着使用const int在class内
: 却无法compile过
: 想请问大家如果遇到这种问题
: 又不想用new的方式
: 有没有其他建议的写法
: 谢谢 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.225.219.135
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1544350618.A.95F.html
1F:推 LPH66: 1. enum 後面用 {} 不是 [] 123.195.192.32 12/10 04:00
阿
感谢版友纠错
之前为上色使用*[m在ptt
手边忙其他事务
没注意到
抱歉
2F:→ LPH66: 2. 原文推文已回答可使用 C++11 的 123.195.192.32 12/10 04:00
3F:→ LPH66: constexpr 关键字来达成 123.195.192.32 12/10 04:00
4F:→ LPH66: 3. 用 static 虽然也是能达成目的 123.195.192.32 12/10 04:00
5F:→ LPH66: 但语意没有 constexpr 明确 123.195.192.32 12/10 04:01
若只有限定C++11那就选constexpr吧
但原文亦可Pre-C++11
参考enum与static足矣
※ 编辑: HiSUrMy (118.169.39.154), 12/10/2018 08:42:55