摘要:
——传统的枚举存在一些问题,其中之一是两个枚举类型定义中的枚举量可能发生冲突。 enum egg {Small, Medium, Large, Jumbo}; enum t_shirt {Small, Medium, Large, Xlarge}; 这将无法通过编译(egg Small和t_shir 阅读全文
摘要:
有时,使符号常量的作用域为类很有用: class Bakery { private: const int Months = 12; // declare a constant? FALSE double costs[Months]; ... 但这是行不通的,因为——声明类只是描述了对象的形式,并没有 阅读全文
摘要:
——C++类引入了一种新的作用域:类作用域 在类中定义的名称(如类数据成员名和类成员函数名)的作用域都为整个类,作用域为整个类的名称只在该类中是已知的,在类外是不可知的。 使用名称: 在类声明或成员函数定义中,可以使用未修饰的成员的名称(限定的名称即不加作用域解析运算符) 构造函数在被调用时才能被识 阅读全文
摘要:
——顾名思义,创建存储对象的数组 Stock mystuff[4]; // creates an array of 4 Stock objects 上述声明要求,这个类要么没有显示地定义任何构造函数,要么定义了一个显示默认构造函数 const int STK = 4; Stock stocks[ST 阅读全文
摘要:
——this指针指向用来调用成员函数的对象(this被作为隐藏参数传递给方法,即直接在成员函数中使用而无需声明) 它是地址: this是对象的地址,而对象本身是*this 用this访问成员: 使用->运算符,通过指针来访问结构成员。这也同样使用于类成员 阅读全文
摘要:
——调用对象被视为只读对象,保证成员函数无法修改它 方法: 将const关键字放在函数的括号后面: void show() const; // promises not to change invoking object void stock::show() const // 函数定义也应该使用co 阅读全文
摘要:
——设置对象的值既可以通过初始化,也可以采用赋值的方式 利用构造函数创建临时对象进行赋值: Stock stock; // 声明一个Stock对象 ... stock = Stock("Boffo Objects", 2, 2.0); // 对stock重新赋值(或可以理解为初始化) 调用构造函数来 阅读全文
摘要:
——用构造函数创建对象后,程序负责跟踪该对象,直到其过期为止。对象过期时,程序将自动调用一个特殊的成员函数—析构函数完成清理工作,如释放构造函数使用new分配的内存。 析构函数的形式: 在类名前加上~,没有返回值和声明类型,没有参数: ~Stock(); 调用: 对于被声明为自动变量的类对象,过期时 阅读全文
摘要:
例一(类初始化错误用法): struct thing { char * pn; int m; }; thing amabob = {"wodget", -23}; // valid initialization Stock hot = {"Sukie's Autos, Inc.", 200, 50. 阅读全文