摘要:
constexpr函数的参数和返回值必须是字面值类型。除了算术类型、引用和指针外,某些类也是字面值类型。和其他类不同,字面值类型的类可能含有constexpr函数成员。这样的成员必须符合constexpr函数的所有要求,它们是隐式const的。数据成员都是字面值类型的聚合类是字面值常量类。如果一个类 阅读全文
摘要:
·指针的定义: ·指针是一个对象集(类比int float,etc); ·指针里面存储的值为内存单元的地址; ·*指针对象具有一组操作。 ·整形不能赋值给指针 ·指针的声明:int *p,赋值不带*; ·指针的定义:*Obj_Name;·指针的操作(运算符) ·普通指针允许: ·+- sizeof( 阅读全文
摘要:
类可以允许其他类或者函数访问它的非公有成员,方法是令其他类或者函数成为他的友元(friend)。如果类想把一个函数作为它的友元,只需要增加一条以friend关键字开始的函数声明语即可: class Sales_data { //为Sales_data的非成员函数所做的友元声明 friend Sale 阅读全文
摘要:
一个数按位取反偶数次还是这个数本身一个数异或本身是0一个数异或0还是这个数一个数异或另一个数偶数次还是这个数 /*一个数与0是0一个数与上二进制全是1的数还是这个数本身 #或与之相反*/ << //位左移运算符 << n 左移n位,最右端用零补齐>> //位右移运算符 >> n 右移n位,最左端用0 阅读全文
摘要:
隐式的类类型转换 如果构造函数只接受一个实参,则它实际上定义了转换为此类类型的隐式转换机制,有时我们把这种构造函数称作转换构造函数 能通过一个实参调用的构造函数定义了一条从构造函数的参数类型向类类型隐式转换的规则。 在Sales_data类中,接受string的构造函数和接受istream&的构造函 阅读全文
摘要:
·委托构造函数 C++11新标准扩展了构造函数初始值的功能,使得我们可以定义所谓的委托构造函数。一个委托构造函数使用它所属类的其他构造函数执行它自己的初始化过程,或者说它把它自己的一些(或者全部)指责委托给了其他构造函数。 和其他构造函数一样,一个委托构造函数也有一个成员初始值的列表和一个函数体。在 阅读全文
摘要:
·数组是一个同一类型数据的排列·数组元素:数组排列里每一个数据·数组类型:数组里数据的类型·数组名:数组的名称,索引的关键字·数组下标:每一个元素所在的位置·数组索引:数组名与下标的组合,定位出元素的过程 数组的定义:int a[5];//定义一个整形数组,有5个元素注意事项:·方括号里只能是常量, 阅读全文
摘要:
类的声明:·class Name[:Inheritance List]{ //class body}; //大括号外要加分号,与java,C#不同 Inheritance List //继承列表 C++支持多重继承,与Java CSharp不同 C++不支持 Point p=new Point(); 阅读全文
摘要:
有时(但不频繁)会发生这样一种情况,我们希望能修改类的某个数据成员,即使是在一个const成员函数内。可以通过在变量的声明中加入mutable关键字做到这一点。 一个可变数据成员(mutable data member)永远不会是const,即使它是const对象的成员。因此,一个const成员函数 阅读全文
摘要:
聚合类使得用户可以直接访问成员,并且具有特殊的初始化语法形式。当一个类满足如下条件时,我们说它是聚合的: ·所有成员都是public的。 ·没有定义任何构造函数。 ·没有类内初始值。 ·没有基类,也没有virtual函数。例如,下面的类是一个聚合类: struct Data{ int ival; s 阅读全文