错了.常量不能标记为static
//方法一:#include<iostream>usingnamespacestd;classApublic:voidA(inti)data(i){cout<<data<<endl;}private:constintdata;};intmain(){Aa(200);return0;} //方法二:#include<iostream>usingnamespacestd;classApublic:voiddis(){cout<<data<<endl;}private:constintdata=100;};intmain(){Aa;return0;}...
二.const数据成员初始化方式 通过构造函数列表初始化,不能在构造函数里初始化 总结: static int a要在类外初始化 const int a要在构造函数初始化列表中初始化 static const int a可以在声明的时候初始化,也可以在类外初始化。但不可以通过构造函数初始化列表初始化...
(1)int a = 1; 这是一个int类型的变量a,a可以继续被重新赋值,比如a = 2;是合法有效的 如果写成 cont int a = 1; 就是一个int类型的常量a,此时a,是不可以被再次赋值 a = 2;❎ 就是不合法的 (2)概念很简单,但是和指针联合使用起来就需要理解记忆, 比如常量指针(常量区的指针) 比如const int *p...
1. const在指针符号的右边 inta=1;intb=2;int*constp=&a;*p=30;p=&b;//Xcode提示错误,无法修改 指针指向的地址无法改变,但是可以通过指针改变指向地址说保存的值。 2. const在指针符号的左边 inta=1;intb=2;intconst*p=&a;*p=30;//Xcode提示错误,无法修改p=&b; ...
classTest{public:Test():a(0){}enum{size1=100,size2=200};private:constinta;//只能在构造函数初始化列表中初始化staticintb;//在类的实现文件中定义并初始化conststaticintc;//与 static const int c;相同。};intTest::b=0;//static成员变量不能在构造函数初始化列表中初始化,因为它不属于某个对象。
二、Const: 使用其好处,是引入了常量的概念,让我们不要去修改不该修改的内存。直接的作用就是让更多的逻辑错误在编译期被发现 修饰局部变量(int const a 和 const int b):这两种写法是一样的,表示 a 和 b 都是常量,不可改变,要注意的是,用const修饰变量时,一定要给变量初始化,否则之后就不能再进...
int foo(){ static int i = 1; // note:1 //int i = 1; // note:2 i += 1; return i; } 要明白这个用法,我们首先要了解c/c++的内存分布,以及static所在的区间。 对于一个完整的程序,在内存中的分布情况如下: 1.栈区: 由编译器自动分配释放,像局部变量,函数参数,都是在栈区。会随着作用于退...
const int* ptr = &a; //ptr是一个指向常量的指针,不能通过 ptr 修改 a 的值 int const* ptr...
const基本使用 复制 - (void)viewDidLoad {[superviewDidLoad];// 定义变量inta =1;// 允许修改值a =20;// const两种用法// const:修饰基本变量p// 这两种写法是一样的,const只修饰右边的基本变量bconstintb =20;// b:只读变量intconstb =20;// b:只读变量// 不允许修改值b =1;// const:修饰...