IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++面向对象程序设计基础知识点 -> 正文阅读

[C++知识库]C++面向对象程序设计基础知识点

目录

1.“类”的概念:

2.关于访问权限

3.关于类内成员组成以及函数概念

4.普通成员函数及如何类外定义成员函数

?5.小总结



在学习过C语言以及c++的基础概念后相信大家对于面向过程的程序设计已经得心应手,那么今天我们所提到的就是c++编程思想中的面向对象程序设计,本篇文章将为大家介绍一些关于C++面向对象程序设计的基础知识点。

1.“类”的概念:

所谓c++面向对象程序设计中的类,其实就与c语言中结构体的概念相类似,或者说结构体就是一个简单的类,声明方式为class + 类名,以下为代码示例:

class person      //创造一个person类
{
    public:
         int m_a;   //声明成员
         int m_b;
    public:
         int personadd()
         {
            return m_a + m_b;
          }
};

其中m_a,m_b都称作类中的成员,也可称作对象,personadd()成为成员函数。

如果想在主函数中调用,调用格式也与结构体相类似,代码示例如下:

int main()
{
    person p;
    p.m_a=10;
    p.m_b=10;
    return 0;
}

2.关于访问权限

我们类中定义的成员在类内可以随意访问,但是在类外能否限制它的访问权限,这就提到了以下几种关键字,public(公共权限),protected(保护权限),private(私有权限),其中使用public声明的成员在类内类外都可访问,而后两者则只能在类内访问。代码示例如下:

class person
{
  public:         //公共权限类内类外都可访问
       int m_a;
  private:        //私有权限及保护权限仅类内可以访问
       int m_b;
  protected:
       int m_c;
};

int main()
{
     person p;
     p.m_a = 10;  //访问成功
     p.m_b = 10;  //访问失败没有访问权限
     p.m_c = 10;  //同上
     return 0;
}

3.关于类内成员组成以及函数概念

我们在定义了一个类以后,其中会包括一些已经存在的成员,即构造函数与析构函数,构造函数,顾名思义就是与类名同名构造出来的函数,而构造函数又分为有参构造函数,无参构造函数和拷贝构造函数,以下为代码示例及详解:

//构造函数声明方式为   类名()
class person
{
   public:
       person()                    //无参构造函数
     {
        cout<<"person无参构造函数以调用"<<endl;
     }
       person(int m_a)             //有参构造函数
     {
        cout<<"person有参构造函数以调用"<<endl;
     } 
       person(peron &p)            //拷贝构造函数
     {
        cout<<"person拷贝构造函数以调用"<<endl;
     }
};

构造函数是编译器默认存在的,如果用户没有主观声明构造函数,那么编译器就会自动调用无参构造函数,相反的,如果用户主观声明了有参构造函数,那么编译器就会直接执行用户定义的有参构造函数,拷贝构造函数同理。

下面来说一说析构函数,何为析构函数,简单的说,用户以及编译器在声明构造函数时会给其分配一个内存空间,而在使用结束后,析构函数则负责释放这些空间,与构造函数同理,如果用户没有主观声明析构函数,编译器同样会调用一个默认的析构函数,每调用一次构造函数就会调用一次析构函数,代码示例如下:

//析构函数声明方式为  ~类名()
class person
{
public:
    person()                    //无参构造函数
    {
        cout << "person无参构造函数以调用"<<endl;
    }
    person(int m_a)             //有参构造函数
    {
        cout << "person有参构造函数以调用" << endl;
    }
    person(const person& p)            //拷贝构造函数(加入const防止数据被修改)
    {
        cout << "person拷贝构造函数以调用" << endl;
    }
    ~person()                     //析构函数
    {
        cout << "person析构函数以调用" << endl;
    }
};
//下面我们来写一个主函数来实现它们
int main()
{
    person p1;      //调用无参
    person p2(10);  //调用有参
    person p3(p2);  //调用拷贝
    return 0;
}

下面看看运行效果

4.普通成员函数及如何类外定义成员函数

在介绍了以上内容后,大家可能以为类中的成员仅可以时构造函数和析构函数,但并不是这样,我们依然可以在类内自定义函数类型。这点与面向过程思想类似便不再过多赘述。

我们知道在面向过程编程中我们可以先对函数名称进行声明,之后在定义函数,在面向对象编程设计亦能如此,我们需要用到关键字符? :: 代码示例如下:

class person
{
   public:
    void coutmod();    //首先在类内对函数名进行声明
};

//在类外对函数进行定义
   void person::coutmod()   //此段代码意译为 void person作用域下的(person::)coutmod()
{
    cout << "Jokeryyds!" << endl;
}

?5.小总结

本次内容主要了讲解了c++面向对象程序设计中的一些基础知识点,主要内容即类的声明包括类内成员的介绍。以及如何调用成员函数,如何实现在类外定义成员函数等,本篇内容都为C++面向对象设计的基本思想,若想更深的理解以及体会,还请大家在日常学习中多多努力,希望大家学有所成,最后附上本段讲解代码:

#include<iostream>
using namespace std;
class person
{
public:         
    int m_a;
private:        
    int m_b;
protected:
    int m_c;
public:
    person()
    {
        cout << "person无参构造函数以调用" << endl;
    }
    person(int a)
    {
        cout << "person有参构造函数以调用" << endl;
    }
    person(const person& p)
    {
        cout << "person拷贝构造函数以调用" << endl;
    }
    ~person()
    {
        cout << "person析构函数以调用" << endl;
    }
    void coutmod();
};
    void person::coutmod()
{
    cout << "Jokeryyds!" << endl;
}
int main()
{
    person p1;//调用无参
    p1.coutmod();
    person p2(10);  //调用有参
    person p3(p2);  //调用拷贝
    return 0;
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 12:37:21  更:2021-12-13 12:37:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:24:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码