类。。。。。。

类的访问权限

类的成员有三种访问权限:public、private 和 protected,分别表示公有的、私有的和受保护的。

在类的内部(类的成员函数中),无论成员被声明为 public 还是 private,都是可以访问。

在类的外部(定义类的代码之外),只能访问 public 成员,不能访问 private、protected 成员。

在一个类体的定义中,private 和 public 可以出现多次

结构体的成员缺省为 public,类的成员缺省为 private

private 的意义在于隐藏类的数据和实现,把需要向外暴露的成员声明为 public。

注意:

  • 类的成员可以是变量,也可以是函数。
  • 类的成员变量也叫属性。
  • 类的成员函数也叫方法/行为,类的成员函数可以定义在类的外面。
  • 用类定义一个类的变量叫做创建(或实例化)一个对象。
  • 类的成员变量和成员函数的作用域和生命周期与对象的作用域和生命周期相同。

简单使用类

1)类的成员函数可以直接访问该类其它的成员函数(可以递归)。
2)类的成员函数可以重载,可以使用默认参数。
3)类指针的用法与结构体指针用法相同。
4) 类的成员可以是任意数据类型(类中枚举)。
5)可以为类的成员指定缺省值(C++11 标准)。

6)类可以创建对象数组,就像结构体数组一样。

7) 对象可以作为实参传递给函数,一般传引用。

8)可以用 new 动态创建对象,用 delete 释放对象。

9)在类的外部,一般不直接访问(读和写)对象的成员,而是用成员函数。

10)对象一般不用 memset()清空成员变量,可以写一个专用于清空成员变量的成员函数。

11)对类和对象用 sizeof运算意义不大,一般不用。

12)用结构体描述纯粹的数据,用类描述对象。

13) 在类的声明中定义的函数都将自动成为内联函数;在类的声明之外定义的函数如果使用了inline 限定符,也是内联函数。
14)类的分文件编写。

构造函数

語法:类名(){.....}

  • 访问权限必须是 public。
  • 函数名必须与类名相同。
  • 没有返回值,不写 void。
  • 可以有参数,可以重载,可以有默认参数。
  • 创建对象时会自动调用一次,不能手工调用。

2)析构函数

語法:~类名(){.....}

  • 访问权限必须是 public。
  • 函数名必须在类名前加~。
  • 没有返回值,也不写 void。
  • 没有参数,不能重载。
  • 销毁对象前只会自动调用一次,但是可以手工调用。

注意:

 

 

1) 如果没有提供构造/析构函数,编译器将提供空实现的构造/析构函数。

 

2) 如果提供了构造/析构函数,编译器将不提供空实现的构造/析构函数。

 

3) 创建对象的时候,如果重载了构造函数,编译器根据实参匹配相应的构造函数。

 

4)创建对象的时候不要在对象名后面加空的圆括号,编译器误认为是声明函数。(没有构造函数、构造函数没有参数、构造函数的参数都有默认参数)

 

 

 

5) 在构造函数名后面加括号和参数不是调用构造函数,是创建匿名对象。

6) 接受一个参数的构造函数允许使用赋值语法将对象初始化为一个值(可能会导致问题,不推

荐)。

CGirl girl = 10;+

7) 以下两行代码有本质的区别:

CGirl girl = CGirl("西施"20);// 显示创建对象。<

CGirl girl;

girl = CGirl("西施"20);

11創建対象。←

1/ 创建匿名对象,然后给现有的对象赋值。1

8)用new/delete 创建/销毁对象时,也会调用构造/析构函数。

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值