C++随记(十)--类与对象(1)

C++随记(十)--类与对象(1)

类是C++中实现OOP的基础,C++相较于C来说最重要的应该就是增设了类这一概念吧。所谓面向对象的编程,其实可以理解面向类的编程。二者的关系:在C++中,对象的数据类型称为—类(class).类是对象的抽象,而对象是类的具体

1.      类的声明:

Class 类名

private:

私有的数据和对象成员;

public:

公用的数据和对象成员;

};

2.      访问控制:

可以看到类声明中出现了两个关键字:public和private,称为成员访问限定符,他们描述了对类成员的访问控制。

public顾名思义,公用的,就是说可以被类中的成员函数访问,也可以被类外的函数访问;

private私有的,就是说只能被我本类中公用成员函数(友元函数也可以,后面会讲)访问。

因此,公用成员函数是 程序 和 对象的私有成员 之间的桥梁,提供了程序和对象之间的接口。

还有第三个访问限定符:protected。用protected声明的成员被称为 受保护的成员,它不能被类外访问但是被派生类的成员函数访问(派生类暂时先不提)。

在一个类体中,不一定都包含关键字private和public,如果不写,就默认是private。

3.      定义对象的方法(和结构体很类似

①先声明类 的类型,再定义对象

如:假设之前有声明了class Country;Country这个类

    然后定义对象:Country US, UK;

②声明类的同时定义对象:

  class Country

{

 private:

 …

 public:

} US,UK;

③不声明类的名字,直接定义对象,就是把②中的Country直接省去就行,但不常用这种方法。在入门阶段个人推荐①

4.      成员函数

成员函数与常规函数定义相似,也有函数头和函数体,也可以有返回类型和参数,区别只是它属于一个类的成员,出现在类体中。使用成员函数时要注意它的权限和作用域。公有成员函数可以被类外调用,而私有的成员函数只能被其他的本类成员函数调用。成员函数可以访问本类的任何成员。

成员函数的定义:

①可以在类声明的时候直接在类体中定义,这个很简单就不赘述了。

②也可以在类外定义,在类体外定义的时候,要加作用限定符(作用域解析运算符)!---::就是两个冒号 前面加上你的类名,它表示你这个函数是属于哪个类的。

5.      对象成员的引用

访问某个对象的成员,一般可以通过三种方式:

通过对象名和成员名进行访问,这种方法较为常见

对象名.成员名

通过指向对象的指针访问

假设有对象US和它的成员area,设有指针 Country *p;

P = & US;

那么US.area p->area (*p).area三者是等价的

③通过对象的引用变量来访问其中的成员

这个也很简单就不赘述了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏猿人谷

标准库类型

一.标准string类型     string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作。 1.1 strin...

1798
来自专栏柠檬先生

es6 对象的扩展

1.属性的简洁表示法     function f(x,y) {       return {x,y};     }     // 等同于     functi...

21210
来自专栏Phoenix的Android之旅

你所不知道的 equals()

在基本运算符中, == 扮演一个重要的角色, 而跟它相似的还有个 equals()方法, 这两个的区别是什么你知道么。

652
来自专栏机器学习从入门到成神

C/C++学习之路(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

1102
来自专栏闻道于事

Java之集合初探(二)Iterator(迭代器),collections,打包/解包(装箱拆箱),泛型(Generic),comparable接口

Iterator(迭代器) 所有实现了Collection接口的容器都有一个iterator方法, 用来返回一个实现了Iterator接口的对象 It...

2888
来自专栏Java3y

泛型就这么简单

1484
来自专栏开发之途

重拾Java(7)-泛型

泛型是在 JDK 1.5 引入的,泛型的意思是参数化类型,通过泛型可以创建以类型安全的方法使用各种类型数据的类、接口以及方法,能够使一份算法独立于特定的数据类型...

631
来自专栏微信公众号:Java团长

理解Java的三大特性之多态

封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方...

621
来自专栏前端学习心得

JavaScript预解释是一种毫无节操的机制

1187
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-07(01).总结private,this,封装,static,成员方法变量,局部变量匿名对象

1:成员变量和局部变量的区别(理解) (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成...

3334

扫码关注云+社区