C++类和对象

2021年5月1日 0 作者 SimpleAstronaut

C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。

我最开始学习C++一直卡在了类和对象,感觉特别难理解。

类的定义

定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。

下面就是一个简单的类

class classname  
{
   public:       
       double length; 
       double breadth;       
       double height; 
}

不太懂?我来给你解释一下这些都是什么

第一行的class classname 定一个类和类的名称,classname就是这个类的名称。

需要注意的是,定义类需要在主程序之前声明类和类的名称。

public 定义类的属性,public就是访问修饰符,即“Access specifiers”,public的意思就是该类是公有访问,公共成员在类的外部是可访问的。您也可以指定类的成员为 private 或 protected。

下面几个定义变量的意思就是定义类的成员了,分别定义了三个双精度浮点变量。

下面是一个实例,里面的一些内容我接下来更新会给你慢慢讲

#include <iostream> 
using namespace std; 
class Box{   
     public:      
        double length;   // 长度             
        double breadth;  // 宽度          
        double height;   // 高度      // 成员函数声明      
double get(void);          
void set( double len, double bre, double hei );
};
// 成员函数定义double Box::get(void){    
         return length *breadth*height;
} 
void Box::set( double len,double bre, double hei){    
         length = len;    breadth = bre;   
          height = hei;
}
int main( ){   
         Box Box1;        
// 声明 Box1,类型为 Box   
         Box Box2;        
// 声明 Box2,类型为 Box   
         Box Box3;        
// 声明 Box3,类型为 Box   
         double volume = 0.0;     // 用于存储体积   
// box 1 详述   
         Box1.height = 5.0;         
         Box1.length = 6.0;       
         Box1.breadth = 7.0;    // box 2 详述   
         Box2.height = 10.0;     
         Box2.length = 12.0;   
         Box2.breadth = 13.0;    // box 1 的体积   
         volume = Box1.height *Box1.length * Box1.breadth;       
         cout << "Box1 的体积:" << volume <<endl;    
// box 2 的体积   
         volume = Box2.height * Box2.length * Box2.breadth;        
         cout << "Box2 的体积:" << volume <<endl;     
// box 3 详述   
         Box3.set(16.0, 8.0, 12.0);    
         volume = Box3.get();    cout << "Box3 的体积:" << volume <<endl;   
         return 0;
}