当前位置:   article > 正文

C++ 详解类与对象_c++类和对象的关系

c++类和对象的关系

一、类和对象

​ 类是用户自定义的一种数据类型

1、类和对象的关系

​ 类是对象的抽象

​ 对象是类的实例化

2、类的定义

​ 类定义的一般形式

class 类名
{
  public:   //公共成员,类内和类外都能直接访问
      成员变量或者成员函数
      ......
  private:  //私有成员,类内可以直接访问,类外不能直接访问,但是可以通过调用类中的函数接口间接访问
      成员变量或者成员函数
  	  ......
  protected: //保护成员,类内可以直接访问,类外不能直接访问,但是可以通过调用类中的函数接口间接访问
       成员变量或者成员函数
  	  ...... 	      
    
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

​ 类中如果没有任何权限限制,默认为private私有权限

3、对象的定义

​ 创建一般形式:

​ 类名 对象名;

​ 通过对象访问成员变量或者成员函数:

​ 对象名.成员名;

4、构造和析构

​ (1)构造函数:一般用于给成员做初始化

​ 构造函数的一般形式:

​ 构造函数名(参数列表) //构造函数名必须和类名相同

​ {

​ 代码模块;

​ }

eg:

class Demo
{
	public:  
		Demo(int value)   //Demo类的构造函数,由系统自动调用
		{		
            val = value;
			cout << __func__  << ":" <<   __LINE__ << endl;  //打印函数名和行数
		}		
    public: 
        int val;
};

Demo obj(10); //定义了一个obj对象,并用10给val做了初始化,对象后的参数就是构造函数的参数

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

注意:

在创建对象时,用户定义的构造函数会由系统自动调用

如果在类中没有定义构造函数,会由系统自动创建一个并且调用

(2)析构函数

​ 析构函数一般用于对数据资源进行回收

​ 析构函数定义的一般形式:

​ ~析构函数名() //析构函数名必须和类名相同,析构函数没有参数

​ {

​ 代码模块;

​ }

析构函数在对象结束时由系统主动调用

练习:测试构造函数和析构函数的调用

​ (3)构造函数和析构函数调用时机

eg:

Demo obj(123);
Demo obj1(312);
	创建对象时:
        obj先进行构造函数,obj1再进行构造函数
    对象结束时:
        obj1先进行析构,obj再进行析构

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
5、类外实现函数功能

​ C++类中允许成员函数在类内声明,类外实现

注意:类外实现成员函数功能时,需要在函数名前面指定函数作用域

class Demo
{
    public:     //公共成员,类内和类外都能访问   
        int getval();

    private:  //私有成员,在类内能直接访问,在类外只能通过类中公共函数接口访问
        int val;
};

int Demo::getval()
{
    return val;    
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/1011094
推荐阅读
相关标签
  

闽ICP备14008679号