C++面对对象(一)
2021-03-31 03:25
标签:机器 增加 lan static 完成 隐式 运算 不用 方法 课程地址:数据结构与算法 | 第四周辅导 红皮第七章 面向对象方法(一) 程序设计方法: 类 定义类 有三种访问控制方式: 注意: 构造函数 形式区别: 参数: 返回值: 构造函数特殊: 构造函数没有任何返回类型,不可以写 void 函数名就是类名(判断一个函数是否为构造函数的依据) 可以重载(有参/无参) 函数重载:C++中不同的函数有相同的函数名。以传入实参的数量/类型来决定调用哪个函数。 类定义中,若未写构造函数,系统提供一个无函数体的无参构造函数 作用: 如果在创建新对象的时候,构造函数由系统自动调用。 若一个对象已经被创建,再进行显示调用的时候,就会报错。 调用类对象方法: 析构函数 特点: 作用: 拷贝构造函数 作用:用一个已存在对象来初始化一个正在创建的新对象 特点: 函数名也是类名 形参只有一个,是对象的引用 也是构造函数,所以没有返回类型 函数原型 函数原型:形参表中给出形参个数、类型,不用给具体名称。 为什么参数是这样的:类 对象 关系 ==> 数据类型 变量 关系: 拷贝类型: 浅拷贝:指向同一块内存区域,析构2次 类声明和实现分离(函数定义与函数声明) 类声明(放在头文件 .h 中) 用途:描述类的结构 类实现(放在源文件 .cpp 中) 用途:描述成员函数具体的功能 注意: .cpp中写出 类实现中成员函数形式: 为啥要分离? 类的静态数据成员 特点: 只要是类声明和实现的分离,就一定要写清楚,这个变量、函数属于谁。 类的常量成员 数据成员,语法: 注意: 成员函数,语法: this 指针(非静态成员函数) 隐式调用:,默认会隐式调用this指针 显示调用: 形参名,与类的数据成员名相同 返回值,对象本身,或者这个对象的地址(this ~ &对象名) 友元 为什么要出现友元? 一个类中的函数,一般无法直接访问另一个类中私有/保护成员,我们用友元函数来做。好处:提高了程序的效率,坏处:破坏了封装性 友元: 友元函数:将某个函数声明为友元函数,该函数,可以访问同一个类中任何成员 定义: 友元成员:将一个类中成员函数A,声明为另一个类B的友元函数 用途:在A类中的一个函数,可以访问B中任一成员变量(B说,A是我的朋友,A可以访问B类的任何东西) 定义(两步法): 在 A 类中声明成员函数 在 B 类中声明 A 类的成员函数,作为B类的友元(B的资源可以任意访问) 友类:A类中所有成员函数,均可访问B类中所有成员。 定义(两步法): 先定义A 类 在B类中声明A是B的友类: 注意: 思维导图: C++面对对象(一) 标签:机器 增加 lan static 完成 隐式 运算 不用 方法 原文地址:https://www.cnblogs.com/FLYMANJB/p/13574233.html
class 类名 {
public: 公有成员:任何地方都可以访问
private: 私有成员:该类 成员函数
protected: 保护成员:该类 + 派生类 成员函数
友元函数(特殊):随便访问
}
// 构造函数
(形参表){
函数体
}
// 一般函数
(形参表{
函数体
}
// 初始化自动调用有参的
Circle circleC(3.5, 4.5, 45.6);
// 再次显示调用,报错
corcleC.circle(3.5, 4.5, 45.6);
对象.方法
指针->方法
// 析构函数不可以有形参
virtual ~ (){
函数体,销毁对象
}
( &对象名)
Circle (Circle &circle)
// 调用有参构造
IntArray x(20);
// 调用拷贝构造(用x去初始化y)
IntArray y(x);
#include “*.h”
”"
先在当前文件夹搜索,再到系统默认文件夹搜索 直接在系统默认文件夹搜索
// 普通函数
(形参表){
函数体
}
// 成员函数
::(形参表){
函数体
}
::
,指出所定义的成员函数属于哪个类 (::作用域运算符)
// .h
static int x;
// .cpp
// 静态
:: = ;
const int x;
(形参表) const
,只可读,不可写
Point (float x, float y){
this->x = x; // x = x???
this->y = y; // 等价于 Point.x = x;
}
return this
return *this
friend ();
class A {
int func (int x);
}
class B {
// A::** 将 A 类中的func放进来
friend int A:: func(int x);
}
class A {
}
class B{
// 把A类作为B的朋友(朋友)
freind class A;
}
下一篇:java集成oss