关于 const,以下正确的是

Please choose the right statement about constusage:

正确答案: A B C   你的答案: C E (错误)

const int a; //const integer
int const a; //const integer
int const *a; //a pointer which point to const integer
const int *a; //a const pointer which point to integer
int const *a; // a const pointer which point to integer


ABC
对于A和B,int const 和 const int 可以颠倒位置,意义不变
CDE都表示指向const int 的指针,而int *const a 才表示指向int的const指针

class A{
private:
  const int a = 1;  //error: 只有静态整型常量可以在类中初始化
  static const int h = 1;         //ok
  static const double h1 = 1.0;   //error: 只有静态整型常量才能在类中初始化
  const int b,c;
  int d;
  int &e=b;  //error:只有静态变量才能在类中初始化。但引用必须定义时初始化,怎么办呢?在初始化列表中初始化
  int &f;
  static int g;
public:
  A():c(1),f(d){  //ok:常量,引用只能在构造函数的初始化列表中初始化
    b=1;//error:常量只能在构造函数的初始化列表中初始化
    d=2;//ok:变量可以在这儿初始化,没问题
    g=1;//error:静态变量在构造函数中不能初始化
  }
 
};
int A::a; //加上这一句后,上边的g = 1;这一行就没问题了。静态变量必须在类定义体的外部定义一次。
          //注意,这儿不能写成static int A::a; static关键字要去掉。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值