c++学习笔记 一(geekband)

c++programs的代码基本形式

1.头文件(功能模块的声明)

2主函数

3其他函数的定义


头文件中的防卫式声明

当我们使用#include包含.h文件是,为了避免出现重复定义的现象,比如在头文件中定义了一个类,如果在把头文件包含到一个定义了与他相同类的.cpp的文件中,那么就会由于重复定义出现编译错误。所以防卫式声明是十分的有必要。形式如下

#ifndef HEAD_H(大写不是必须的)

#define HEAD_H

......

#endif


inline(内联)函数

与预处理类似,在编译期间直接计算出结果,但是是否是一个内联函数取决于编译器,一般比较简单的函数都可以实现内联。

访问级别

public   类的外部接口

private   只可以由本类成员访问,外部访问非法

protect  与私有相似,区别在于继承


friend友元

改变访问级别,使得外部函数也可访问类类型对象的所以数据和功能

void friend  comple();

所以可以说class的各个函数互为friend函数


构造函数

与内置类型的初始化相似,由类定义的类类型,构造函数决定了类类型对象的初始化方式。

无返回值,支持默认参数的初始化,重载,内联

注意:若定义了参数及其类型相同的两个构造函数,一个有默认值一个没有,这种情况是未定义的,因为编译器将这两个函数视为相同的。

私有构造函数

因为是私有成员所以不能被外部访问,但可以在内部定义对象,如果将其定义为static,那么就可以得到一个单对象。

常成员函数

在成员函数的参数表后面加const(顶层const)(数据只读)

1.常成员函数不能更新对象的数据成员

2.当一个对象被声明为常对象,则不能通过该对象调用该类中的非const成员函数

传值 与 传参

传值相当与拷贝一份备份

传参相当于传递一个指针

操作符的重载

成员函数:对于一个2元操作符来说的重载函数直接一个参数,左边是参数是默认的为其类类型对象,右边参数是操作是另一个对象,

非成员函数:对于2个操作数的重载函数要两个参数,不可以重载内置类型的操作符重载。

临时对象

typname()

如果没被保存,执行完这条语句就将消失。

你可能感兴趣的:(c++学习笔记 一(geekband))