C++ 类和对象-基础知识(持续更新)

类和对象

C++面向对象的三大特征:封装、继承、多态

类可以理解为一类事务的抽象,把一类事务抽象为一类,这个类中包括属性和行为,当我们把这个抽象实现出来时,我们可以说这一个实现就是一类中的一个实例

对象

我们几乎可以将所有东西看为一个对象,其对象中包含属性和行为

如果我们把手机作为一个对象,那么

  • 属性:就是手机拥有的特性,例如屏幕,充电口,耳机口等等
  • 行为:就是手机可执行的操作,例如打电话、玩游戏、看视频等等

成员

成员就是类总的属性以及行为甚至是其他部分,只要是组成这个类的部分,我们都统称为成员

对象成员

当一个类中包含另一个类的对象时,这个对象可以称为对象成员

构造顺序

在构造包含对象成员的类时,会先调用对象成员的构造函数再调用自身的构造函数

析构顺序

在析构包含对象成员的类时,会先调用自身析构函数再调用对象成员的析构函数

静态成员

静态成员包括静态成员对象和静态成员函数,静态成员和非静态成员的区别是静态成员不属于类的对象,属于这个类的全体,在内存中只有一份,而非静态成员是属于每一份类的对象

静态成员变量

// 格式
public A {
public: 
    static int i = 1;
}

静态成员函数

静态成员函数只能访问静态成员对象,对于非静态成员对象时无法访问的

// 格式
public A {
public:
    int j = 0;
    static int i = 0;
    static void test(){
        i++;
        // j++; 非法的无法被访问到
    }
}

静态成员的访问方式

// 格式
class A{
public:
    static void func(){};
    static I = 1;
}

A a;
a.func(); // 通过类的对象访问
A::I; // 通过类名来访问

常量成员

常量成员指的是此成员是不可被修改的

this 指针

this指针是隐藏在每一个非静态成员函数中的指针,它代表了调用该函数的对象的引用

例如

class A {
public:
    int i;
    public A(int i) {
        // this->i代表对象的i属性的值设置为构造参数中i的值
        this->i = i;
    }
}

友元

友元指的是可以通过一种手段访问类中的私有成员的技术

全局友元函数

我们可以创建一个全局函数此全局函数可以访问其他类的私有成员

案例

class Person {
private:
	int m_A;
	// 友元全局函数声明不分权限修饰符
	friend void friendFunction(Person&);
};

void friendFunction(Person &p) {
	p.m_A = 123;
}

友元类

我们可以指定某个类是另一个类的友元类

案例

class Person;
class GodPerson;
class Person {
	friend class GodPerson;
	string mMsg;
	Person() {mMsg = "消息";}
};
class GodPerson {
private: Person person;
public: void showMsg() {cout << person.mMsg << endl;}
};

类友元函数

我们可以类中指定某个类的函数作为此类的友元函数

案例

class B;
class A;
class B {void test(A& a);};
class A {
private:
    friend void B::test(A&);
	int mTest = 100;
};
void B::test(A& a) {a.mTest = 1;}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值