类中的常量
有时我们希望某些常量只在类中有效。由于#define 定义的宏常量是全局的,不能 达到目的,于是想当然地觉得应该用 const 修饰数据成员来实现。const 数据成员的确 是存在的,但其含义却不是我们所期望的。
const 数据成员只在某个对象生存期内是常 量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其 const 数 据成员的值可以不同。 不能在类声明中初始化 const 数据成员。
以下用法是错误的,因为类的对象未被创 建时,编译器不知道 SIZE 的值是什么。
1 #include <iostream> 2 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 4 using namespace std; 5 int main(int argc, char** argv) { 6 7 //x,y 为操作数,c为运算符 8 int x,y,z; 9 char c1; 10 cin>>x>>c1>>y; //c1 11 12 //多路选择语句选择不同表达式计算语句 13 switch(c1) { 14 case '+':cout<<x<<"+"<<y<<"="<<x+y<<endl; 15 break; 16 case '-':cout<<x<<"-"<<y<<"="<<x-y<<endl; 17 break; 18 case '*':cout<<x<<"*"<<y<<"="<<x*y<<endl; 19 break; 20 case '/':cout<<x<<"/"<<y<<"="<<x/y<<endl; 21 break; 22 case '%':cout<<x<<"%"<<y<<"="<<x%y<<endl; 23 break; 24 default :cout<<"Wrong !"<<endl; //当不符合上述情况时执行本子句 25 } 26 return 0; 27 }