C++中的类

(1)C:面向过程:数据+算法
         C++: 面向对象:对象+消息
          面向对象的优点:可以提高代码的扩展性,复用性,维护性 ,灵活性
                            缺点:运行效率不高,运行效率会下降10%左右
                             代码和代码之间,功能和功能之间相互独立

(2):面向对象的特点
           1.封装:提高代码的维护性
           2.继承:提高代码的复用性
3.多态:提高代码的扩展性
4.抽象:提高代码的灵活性
注:如果说三大特点就说前三点

(3):类和对象
类是解决封装
类是对象的抽象,对象是类的一个实例
类(动物)         对象(老虎,狮子,兔子)

(4):类的作用域属性:public private protected(成员访问限定符)
public:公有的,在类外可以通过对象的方法访问
private:私有的,不能在类外通过对象的方法访问,可以在类内访问
protected:保护权限,在没有继承的条件下,同private的访问权限

(5)类示例:
class Test     //Test类名习惯大写
{
public:
  
        //嵌套类:在类中又定义了一个类
   class InnerClass
  {
   public:
      void Display();   //在类内声明函数,在类外定义
   private:
      int x_;    
   };
 
  /*inline*/void Display()
  {
     
     cout << "x_ " << this->x_ << endl;
   }

       //通过类内的接口函数来操作类内的private定义的成员变量
//还可在接口函数中设置入口参数检查来保障安全使用
   void SetX(int x)
   {
       if(x > 10)
      {
          
       }
       x_ = x;
  }

   
   void Func(Test& t)
  {
       if(this == &t)
       {
          cout << "me" << endl;
      }
       else
       {
          cout << "other" << endl;
       }
  }

private:
  int x_;
};

注意点:
1.一般在类内实现的函数(不包括循环等控制语句)系统将其默认为内联函数,大大减少了调用成员的时间开销,但很占用内存,所以一般成员函数都是在类内声明函数,在类外定义函数,这样系统就不再把成员函数默认为内置函数了
2.类的声明放在.h文件中,类的定义放在类的.cpp文件中,在类外实现的函数不再默认是内联函数
3.在类内声明的函数不需要全都实现

4.用类实例对象后,对象的大小由属性(数据成员)决定,对象的方法被共享(每个对象所占的内存空间只是对象数据成员所占的内存空间,而不包括函数代码所占的内存空间),通过this指针保存对象的地址,这样当操作共享的对象的方法时才知道是哪个对象在执行方法 注意:类中的静态成员函数(static修饰的)没有this指针

this指针:指向本类对象的指针,它的值是当前被调用的成员函数所在的对象的起始地址,可以用(*this)来表示被调用的成员函数所在的对象

(6)嵌套类:在类中再定义一个类

(7)局部类:在main()函数中定义的类,只能在类内去实现方法,局部类不能有静态成员和静态方法



()结构体和类
gcc编译器下结构体中只能存放变量,不能存放函数
g++编译器对结构体有升级,可以在结构体中存放函数
g++编译器下结构体和类几乎一模一样

()前向声明:在一个类中只能定义另一个类中的指针和引用,不能出现前向声明的对象(即在一个类中不能再定义另一个类的对象),如果想要在一个类中定义另一个类的对象时,必须要添加头文件(但代价比较大,加载的代码量比较大)












  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值