zoukankan      html  css  js  c++  java
  • C++基础知识(5)---类和对象

       终于把C++中的基础在前面的几篇博客中总结完了,可能还有一些语法还没有总结到,没关系,以后用到了再查资料就好。类是C++中的一个非常重要的概念,这是区别你使用的C++到底是面向过程还是面向对象的一个重要的标志。如果在你写的C++程序中没有使用到类,仅仅使用了C++中的几个库。那么你所使用的C++仍然是面向过程的,只有使用了类的C++程序才能说是面向对象的。当然前面的概念有些不太准确,面向对象是一种思想和设计方法,不是说牵强附会的使用了类就掌握了面向对象。面向对象的思想需要我们在慢慢培养和建立。

         在C++的类中,我们通过三个关键字public,protected,private来限定类中成员的可见范围。public类型的成员对外部来说是暴露的,外部的程序可以通过这些接口来实现对类的操作。面向对象所基于的是客户服务器模型,我们所写的类和对象就是服务器,他们将各种已经写好的函数封装好,客户就是调用类中各种函数的程序。private声明的成员,对于外部客户来说是不可见的,但是对于类内部的各个成员来说是可见的,外部客户只能通过public声明的接口实现对类内部私有成员的操作。在C++中一般不将数据成员声明为public,从而实现了信息的封装。在使用类的成员时要用到类的成员操作符 . 和 ->。如下

     1 class A
     2 {
     3     public:
     4     void setA(int b)
     5     {
     6          a=b;
     7     }
     8     private:
     9     int a;
    10 }
    11 A aa,*ap;
    12 
    13 aa.setA(10);
    14 ap->setA(9);

      可以看到,如果前面是对象实体,则使用 “.”,如果前面是对象指针则使用->。

       在前面我们已经说过,struct关键字也可以声明类,那么是否struct关键字就完全等价于class关键字呢,答案显然是no。我们来看一下struct与class有什么区别。在struct中,如果一个成员前面没有public,protected,或者是private,那么它默认的就是公有成员,而在class中默认的是私有成员。

       C++类的成员函数的定义既可以放在类的里面,也可以放在类的外面。但是成员函数的声明都必须放在类的里面。如果定义的函数体放在类的里面的话,就将这个函数当做内联函数来处理。但是也可以在声明的时候用关键字inline显式声明这个函数是内联函数。这时候函数体的定义即使放在外部也会按照内联函数来处理。如下:

     1 class A
     2 {
     3    public:
     4     int getA() const {return a;}
     5    inline void setA(int b);
     6    
     7   private:
     8   int a;
     9 }
    10 
    11 void A::setA(int b) {a=b;}

     上例中的函数getA和setA都是内联函数。

  • 相关阅读:
    Windows 编程入门,了解什么是UWP应用。
    java getway springcloud 记录请求数据
    nginx服务器配置传递给下一层的信息的一些参数-设置哪些跨域的域名可访问
    e.printStackTrace() 原理的分析
    关于性能测试组出现的问题查询和优化
    springboot connecting to :mongodb://127.0..0.1:27017/test authentication failed
    redis 集群 slots are covered by nodes.
    @PostConstruct +getapplicationcontext.getbean springboot获取getBean
    idea 错误: 找不到或无法加载主类 xx.xxx.Application
    elastic-job和spring cloud版本冲突2
  • 原文地址:https://www.cnblogs.com/wyuzl/p/6230937.html
Copyright © 2011-2022 走看看