C++ 类

成员函数:

在类内部定义的函数默认为inline。也可以在类定义体外部的函数定义上指定inline,但其定义通常应放在有类定义的同一头文件中。

内联函数和宏的区别在于,宏是由预处理器对宏进行替代,而内联函数是通过编译器控制来实现的。而且内联函数是真正的函数,只是在需要用到的时候,内联函数像宏一样的展开,所以取消了函数的参数压栈,减少了调用的开销。内联函数提高了执行效率。

内联函数也有一定的局限性。就是函数中的执行代码不能太多了,如果,内联函数的函数体过大,一般的编译器会放弃内联方式,而采用普通的方式调用函数。

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

析构函数可以是内联函数。

2、

class Screen;//前向声明

在screen声明之后,定义之前,screen是一个不完全类型,不能定义对象,只能用于定义指向该类型的指针及引用

定义类不会进行存储分配,定义对象时,将为其分配存储空间。

3、为什么类的定义以分号结束?因为定义之后可以接一个对象定义列表。

class Screen {……}s1,s2;

 4、单个参数的构造函数如果不添加explicit关键字,会定义一个隐含的类型转换(从参数类型转换到自己);添加explicit关键字会消除这种隐含转换。

class Sales{

  public:

    explicit Sales(istream &is);

};

item.same_isbn(cin);//error

item.same_isbn(Sales(cin));//ok

原文地址:https://www.cnblogs.com/relaxgirl/p/3570952.html