[C++]入门笔记2.Objcet

来源:互联网 发布:淘宝爆款宝贝更换详情 编辑:程序博客网 时间:2024/05/14 10:32

结构体和类的差别:

结构体中所有成员缺省为:public(公有的)

public(公有的)类中所有成员缺省为:private(私有的)


可见性控制:

public:公有的(任何地方访问)

protected:保护的(内部和子类(继承)可访问)

private:私有的(只有内部可访问)


构造函数:

类名为函数名,无返回值,创建对象自动调用

必须有一个构造函数

如果没有构造函数则编译器会自动提供一个无任何动作的默认构造函数


析构函数:

取反~接上类名,无返回值,无参数,只能有一个。

当对象生命周期结束时自动调用


重载:

函数名相同,参数数量或类型不同,没有缺省值函数

实现一个函数根据参数可能有多种响应


this隐含指针:

变量名相同,取最近的使用,可以试用this指针

只能在类内部使用,指向的对象本身,代表对象地址


继承:

格式:子类 :继承方式 父类

都存在构造函数的情况下:先父类构造函数再子类构造函数

都存在析构函数的情况下:先子类析构函数再父类析构函数

父类和子类构造函数不同的情况:子类构造函数():父类构造函数()

常量初始化:构造函数后接 常量名(值)

函数覆盖:发生在父类和子类之间,函数名相同,执行子类响应

::(两个冒号):作用域标识符

函数覆盖后使用父类名::函数名执行父类函数


多态性:

虚函数:virtual

如果父类中函数为虚函数,传递子类的地址,子类有就调用子类,子类没有就调用父类的

纯虚函数:virtual 函数()=0,没有动作,为了在子类具体实现。

引用:

int a=1;

int &b = a; 

变量的别名,必须在定义的时候就始化。

&定义的时候才是引用,其他地方为取地址符

和指针不同:引用不需要内存地址,指针变量需要内存。

主要用在函数传参,语义更清晰




一般把类的声明和代码分开为*.h和*.cpp 

包含头文件时注意勿重复包含

可试用预编译命令:

#ifndef POINT_H

#define POINT_H

........

#endif

原创粉丝点击