摘要:
——类的所有对象共同一个静态数据成员,只创建一个静态数据成员副本 class StringBad { private: char *str; int len; static int num_strings; // 声明静态数据成员 public: ... }; 静态数据成员在类声明中声明 int S 阅读全文
摘要:
第一: 唯一匹配,无二义性(优先于自动转换) 第二: 无匹配且定义了自动转换,可只定义一种转换或使用explicit强制显示转换,从而避免隐式转换造成的二义性错误 阅读全文
摘要:
——有时转换函数更搭配友元函数、有时多余的转换函数会干扰友元函数的运行 Stonewt operator + (const Stonewt &st1, cosnt Stonewt &st2) { double pds = st1.pounds + st2.pounds; Stonewt sum(pd 阅读全文
摘要:
——C++不自动转换不兼容的类型,允许用户自定义类类型的自动和强制转换 其它类型转成类: 只接受一个参数的构造函数可作为转换函数(若其它参数都有默认值,则也符合情况) class Stonewt { private: ... public: Stonewt (double lbs); {...} / 阅读全文
摘要:
——rand()函数将一种算法用于一个初始种子(固定不变)来获得随机数,该随机数将用作下次函数调用的种子。 srand(time(0)); 头文件cstdlib包含srand()和rand()的原型,ctime包含time()的原型 srand()允许覆盖默认的种子值 time(0)返回当前时间(某 阅读全文
摘要:
描述对象所处的状态的数据成员 阅读全文
摘要:
——能够访问类的私有成员的非成员函数 创建友元: 将其原型放在类声明中,并在原型声明前加上关键字friend friend Time operator *(double m, const Time &t); // goes in class declaration operator*()函数不是成员 阅读全文
摘要:
——运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。C++允许将运算符扩展到用户自定义的类型(如:类对象的相加) 使用运算符函数: returntype operator op ( argument-list ); 例如classtype operator *(int a)、cl 阅读全文
摘要:
cos、sin参数是度数,而atan、atan2参数返回弧度 阅读全文