1、在类内部定义的函数默认为inline。

2、将关键字const加在形参表之后,就可以将成员函数声明为常量。
如:double  avg_price() const;
const成员不能改变其所操作的对象的数据成员,const必须同时出现在声明和定义中。

3、如果类是用struct关键字定义的,则在第一个访问标号之前的成员是公有的;如果类是用class关键字定义的,则这些成员是私有的。

4、inline成员函数的定义必须在调用该函数的每个源文件中是可见的,不在类定义体内定义的inline成员函数,其定义通常应放在有类定义的同一头文件中。

5、声明一个类而不定义它:class Screen;
定义类类型的对象:Sales_item item1;
class(或struct)  Sales_item item2;

6、类不能具有自身类型的数据成员,但类的数据成员可以是指向自身类型的指针或引用。

7、类的定义以分号结束

8、不能从const成员函数返回指向类对象的普通引用,const成员函数只能返回*this作为一个const引用。

9、基于成员函数是否为const,可以重载一个成员函数,同样的,基于一个指针形参是否指向const,可以重载一个函数。const对象只能使用const成员,非const对象可以使用任一成员,但非const版本是一个更好的匹配。

10、可变数据成员:希望类的数据成员(甚至在const成员函数内)可以修改,可以通过将它们声明为mutable来实现。

11、形参表和函数处于类作用域中,函数返回类型不一定在类作用域中,如果返回类型使用由类定义的类型,则必须使用完全限定名。

12、一旦一个名字被用作类型名,该名字就不能被重复定义。
如:typedef double Money;
      class Account{
      public:
            Money balance(){ return bal;}  //uses global definition of Money
      private:
            typedef long double Money;  //error:cannot change meaning of Money
            Money bal;
     }

13、构造函数初始化式只在构造函数的定义中而不是声明中指定。
构造函数分两个阶段执行:(1)初始化阶段;(2)普通的计算阶段,计算阶段由构造函数体中的所有语句组成。
类类型的数据成员总是在初始化阶段初始化。
没有默认构造函数的类类型的成员,以及const或引用类型的成员,不管是哪种类型,都必须在构造函数初始化列表中进行初始化。可以初始化const对象或引用类型的对象,但不能对它们赋值。
成员被初始化的次序就是定义成员的次序。

14、可以通过将构造函数声明为explicit,来防止在需要隐式转换的上下文中使用构造函数。explicit关键字只能用于类内部的构造函数声明上,在类的定义体外部所做的定义上不重复定义它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值