c++中类的基本知识(1) 访问控制、友元、this指针

本文探讨C++中类的基础知识,包括访问控制(private和public)、友元(类、函数及成员)的使用,以及this指针的概念和在成员函数中的作用。强调了声明友元时要注意声明和定义的依赖关系,以及this指针默认为指向非常量版本的常量指针,常量成员函数返回的是常量引用。
摘要由CSDN通过智能技术生成

类的基本思想是数据抽象和封装。数据抽象是一种依赖于接口和实现分离的编程。类的接口包括用户能执行的操作;类的实现包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。
本文梳理一下类的基础知识和一些值得注意的点,参考《C++ Primer》第七章。

1 访问控制和封装

类中包括成员变量和成员函数,可以定义为 private 或者public。
比如定义一个Person类

class Person{
   
    int height;
    int age;
    ...
public:
    int get_height(){
   return height;}
    ...
}

这里,public之前的成员都是私有成员 ,类内可见,类外不可见。public之后的成员开放给类外访问,提供给用户一个使用此类的接口。

C++中定义一个类有struct和class两种类型,它们的区别在于默认的访问权限上。在第一个访问说明符前,struct默认是public,class默认是private。

虽然其数据成员是private的,但是类可以通过声明其他类或者函数为其友元,使得这些友元可以访问类的私有成员。
这里的友元可能有以下几种情况:

  1. 作为类的接口之一的非成员函数
  2. 其他类
  3. 其他类中的成员
    这里需要注意的有几点,

一是声明其他类中的成员为友元时,要写清楚名字作用域,另一点在于,必须注意定义和声明之间的依赖关系。友元仅仅提供了访问权限,并不是真正的声明。
比如如下的例子:

struct X{
   
    friend void f();//提供访问权限,f()尚未声明
    X() {
   f();} //错误,此时f()并未声明
    void g();
    void h();
}

void X::g() {
   return
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值