在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
error C2131: 表达式的计算结果不是常数
1 #include <iostream> 2 using namespace std; 3 4 void main() 5 { 6 const int class_size = 12; 7 int finalGrade[class_size]; 8 9 int a = 12; 10 int arr[a];//error C2131: 表达式的计算结果不是常数 11 12 int x; 13 std::cin >> x; 14 const int size = x; 15 double classAverage[size];//error C2131: 表达式的计算结果不是常数 16 17 system("pause"); 18 }
指向常量的指针 const int * p; 常量指针 int x=5; int * const p=&x; 指向常量的常量指针 int x=2; const int * const p=&x;
error C3892: “s1”: 不能给常量赋值
1 #include <iostream> 2 using namespace std; 3 4 void main() 5 { 6 const char * s1 = "hello world"; 7 char s2[] = "hello world"; 8 9 std::cout << s1 << std::endl; 10 std::cout << s2 << std::endl; 11 12 s1[0] = 'a';//error C3892: “s1”: 不能给常量赋值 13 s2[0] = 'a'; 14 15 std::cout << s1 << std::endl; 16 std::cout << s2 << std::endl; 17 18 printf("s1=%p\n", &s1); 19 printf("s2=%p\n", &s2); 20 21 system("pause"); 22 }
const对象 1常量成员 2常引用作为函数参数 3常对象 类名 const 对象名(参数表);//必须初始化 4常成员函数 类型标识符 函数名(参数列表) const;
1 #include <iostream> 2 using namespace std; 3 4 class A 5 { 6 const int i; 7 public: 8 A() :i(0) 9 { 10 11 } 12 void f() 13 { 14 std::cout << "f()" << std::endl; 15 } 16 void f() const 17 { 18 std::cout << "f() const" << std::endl; 19 } 20 }; 21 22 void main() 23 { 24 const A a; 25 a.f(); 26 27 A a1; 28 a1.f(); 29 30 system("pause"); 31 }
在常成员函数里,不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。如果将一个对象说明为常对象,则通过该对象只能调用它的const成员函数,不能调用其它成员函数。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论