C++中的知识点记录

简介: C++中的知识点记录

目录

知识点一、this指针

知识点二、对象数组

知识点三、对象传参

知识点四、友元知识


知识点一、this指针

C++中的this指针是总是指向当前对象,每当我们调研一个成员函数的时候,系统就自动把this指针作为一个隐藏的参数传给我们调用的函数,并且C++编译器,会根据this指针所指向的那个对象来确定,我们当前是该引用哪一个对象的数据成员

知识点二、对象数组

在C++中我们说的对象数组,就是指数组中的每一个元素都是对象的数组,它基本的数据类型数组是一样的,在我们使用对象数组的时候,也就只能访问单个数组元素,并且对象的指针就是用于存放该对象地址的变量,在C++中对象的指针既可以直接指向对象的成员,通过这种方法可以使这些指针可以访问对象的成员

知识点三、对象传参

在C++中对象是可以作为参数进而传递给函数的,并且这种方法与传递其他类型的数据是相同的,再向函数传递对象参数的时候,就是通过传值调用进而传递给函数的,对象指针也可以作为参数,并且可以实现传址调用

知识点四、友元知识

含友元成员函数。在C++中友元有两种形式,一种是友元函数,也称为含有友元成员函数,另一种是友元类,友元是可以访问对象的所有数据,包含私有数据和保护数据,他使类既具有封装性的同时又具备灵活性,友元使得不同类之间的成员函数类的成员函数与一般成员函数之间可以进行数据共享,尤其是当一个函数需要访问多个类的时候,友元函数就显得非常重要,我们引入友元的另一个主要原因就是为了使我们的编程更加方便,在一些情况下,如果运算符被我们重载,就需要用到友元函数      

并且友元关系是单向的,不具备交换性,若声明了,类X是类Y的友元,这是不等于类Y一定是X的友元,这要看那类Y中是否也有相对应的声明

友元关系也不具有传递性,若类X是类Y的友元,类Y是类Z的友元,但不一定可以推出类X是内Z的友元,如果想类X是类Z的友元,应该在内Z中也做出相对应的声明

我们定义了A类

#include <iostream>
using namespace std;
using namespace std;
class B;
class A;
void Show(A&, B&);
class B
{
private:
    int score;
    friend class A;
    friend void Show(A&, B&);
public:
    B(int temp = 100) :score(temp) {}
};

接着我们定义了B类

class A
{
private:
    int value;
    friend void Show(A&, B&);
public:
    A(int temp = 200) :value(temp) {}
    void Show(B& b)
    {
        cout << value << endl;
        cout << b.score << endl;
    }
};
void Show(A& a, B& b)
{
    cout << a.value << endl;
    cout << b.score << endl;
}
int main()
{
    A a;
    B b;
    a.Show(b);
    Show(a, b);
    return 0;
}

输出结果:

200

100

200

100

相关文章
|
存储 人工智能 算法
【一站式备考指南】一文掌握 C++ 程序设计 课程 知识点
【一站式备考指南】一文掌握 C++ 程序设计 课程 知识点
287 0
|
存储 C++
【C++】多态(重写)的实现过程及其原理【核心知识点精讲】(22)
【C++】多态(重写)的实现过程及其原理【核心知识点精讲】(22)
|
编译器 C语言 C++
C++入门第四篇----详解C++类和对象知识点(下)
C++入门第四篇----详解C++类和对象知识点(下)
93 0
|
编译器 C语言 C++
C++入门第四篇----详解C++类和对象知识点(上)
C++入门第四篇----详解C++类和对象知识点(上)
102 0
|
存储 网络协议 编译器
【干货总结】Linux C/C++面试知识点
Linux C/C++基础与进阶知识点,不仅用于面试,平时开发也用得上!
1086 108
【C++小小知识点】重载、覆盖(重写)、隐藏(重定义)的对比【详解】(23)
【C++小小知识点】重载、覆盖(重写)、隐藏(重定义)的对比【详解】(23)
|
C++
C++继承的相关知识点
C++继承的相关知识点
149 0
|
存储 算法 搜索推荐
【C++ 数据结构与算法 一站式备考指南】一文掌握 数据结构与算法课程 知识点(二)
【C++ 数据结构与算法 一站式备考指南】一文掌握 数据结构与算法课程 知识点
393 2
|
存储 算法 C++
【C++ 数据结构与算法 一站式备考指南】一文掌握 数据结构与算法课程 知识点(一)
【C++ 数据结构与算法 一站式备考指南】一文掌握 数据结构与算法课程 知识点
872 2
|
存储 C++ 容器
C/C++常见的易模糊知识点(结构体、指针、STL)
C/C++常见的易模糊知识点(结构体、指针、STL)
C/C++常见的易模糊知识点(结构体、指针、STL)