鸡啄米:C++编程之十三学习之类与对象,类的声明,成员的访问控制

1. 本次学习鸡啄米课程第13篇,把比较重要的学习记录下来,以敦促自己更好的学习。推荐他们的网址学习:http://www.jizhuomi.com/school/c/97.html

2. 在面向过程的设计中,程序的模块是函数构成的,而面向对象设计中程序模块是类构成的,函数只是语句和数据的封装,而类是函数和数据的封装,做了一段C++之后,才明白这句话的意思。其实类就是一种自定义的数据类型。可以定义某个类类型的变量,用类定义的变量叫做类的对象,这种定义对象的过程叫做实例化。

3. 不过一直有个疑问,函数可以不定在类里面吗?就像C语言的,这个函数不属于任何一个类?

4. 类的声明

1 class  Clock
2 {
3         public:
4                     void SetTime(int NewH,int NewM,int NewS);
5                     void ShowTime();
6         private:
7                     int  Hour,Minute,Second;
8 };

5. 函数在类里面声明,然后具体实现放在类外面,要加个::

 1 void Clock::SetTime(int NewH, int NewM, int NewS)
 2 {
 3     Hour=NewH;
 4     Minute=NewM;
 5     Second=NewS;
 6 }
 7 void Clock::ShowTime()
 8 {
 9     cout<<Hour<<":"<<Minute<<":"<<Second<<endl;
10 }

6. 对上面的<<语法不太明白?去搜了一下

cout<<"Hello! \n";是条语句,每条语句由分号结束。cout是C++标准库里预定义的对象,它的信息就放在之前包含的头文件iostream.h中,它是一个输出流对象,用操作符<<将后面的字符串输出到标准输出设备,一般是显示器。

7. 类成员的访问控制

类成员访问权限的控制是通过设置成员的访问控制属性来实现的。访问控制属性有三种:公有类型(public)、私有类型(private)和保护类型(protected)。

公有类型声明了类的外部接口。公有类型成员用public关键字声明。外部访问必须通过外部接口进行。比如,对于Clock类,外部想查看或改变时间只能通过SetTime和ShowTime两个公有类型的函数实现。

private后面声明的是类的私有类型成员。如果没有标明访问控制属性则默认为private。比如,类Clock声明中,如果那个public没有的话,那么SetTime和ShowTime函数就都默认是private的。私有类型成员只能由本类中的成员函数访问,外部不能访问。Clock类中Hour、Minute、Second都是私有类型成员。

8. 类的比较简单的成员函数也可以声明为内联函数,和普通内联函数一样,编译时也会将内联函数的函数体插入到每个调用它的地方。内联函数的声明有两种方式:隐式声明和显式声明。把函数体直接放到类主体内,这种方式就是隐式声明。其实比较奇怪,在类里面就是内联函数了?内联函数应该会消耗更多的空间。

9. 打开VS2010测试一下。

原文地址:https://www.cnblogs.com/429512065qhq/p/8283075.html

时间: 2024-10-12 20:49:29

鸡啄米:C++编程之十三学习之类与对象,类的声明,成员的访问控制的相关文章

《鸡啄米C++编程入门系列》系列技术文章整理收藏

<鸡啄米C++编程入门系列>系列技术文章整理收藏 收藏整理鸡啄米C++编程入门系列文章,供个人和网友学习C++时参考 1鸡啄米:C++编程入门系列之前言 2鸡啄米:C++编程入门系列之一(进制数) 3鸡啄米:C++编程入门系列之二(原码.反码与补码) 4鸡啄米:C++编程入门系列之三(VS2010的使用介绍) 5鸡啄米:C++编程入门系列之四(数据类型) 6鸡啄米:C++编程入门系列之五(运算符和表达式) 7鸡啄米:C++编程入门系列之六(算法的基本控制结构之选择结构) 8鸡啄米:C++编程入

鸡啄米:C++编程之十四学习之构造函数和析构函数

1. 本人学习鸡啄米课程的笔记记录,用来记录学习的历程和进度 2. 构造函数 我们在声明一个变量时,如果对它进行了初始化,那么在为此变量分配内存空间时还会向内存单元中写入变量的初始化.声明对象有相似的过程,程序执行时遇到对象声明语句时会向操作系统申请一定的内存空间来存放这个对象,但是它能像一般变量那样初始化时写入指定的初始值吗?类的对象太复杂了,要实现这一点不太容易,这就需要构造函数来实现. 构造函数的作用就是在对象被创建时利用特定的初始值构造对象,把对象置于某一个初始状态,它在对象被创建的时候

鸡啄米MFC教程笔记之二:MFC应用程序框架分析

这一节鸡啄米就为大家分析下MFC应用程序框架的运行流程. 一.SDK应用程序与MFC应用程序运行过程的对比 程序运行都要有入口函数,在之前的C++教程中都是main函数,而Windows应用程序的入口函数是WinMain函数,MFC程序也是从WinMain函数开始的.下面鸡啄米就给出用Windows SDK写的“HelloWorld”程序,与MFC应用程序框架进行对比,这样能更好的了解框架是怎样运行的.Windows SDK开发程序就是不使用MFC类库,直接用Windows API函数进行软件开

鸡啄米MFC教程笔记之七:对话框:为控件添加消息处理函数

MFC为对话框和控件等定义了诸多消息,我们对它们操作时会触发消息,这些消息最终由消息处理函数处理.比如我们点击按钮时就会产生BN_CLICKED消息,修改编辑框内容时会产生EN_CHANGE消息等.一般为了让某种操作达到效果,我们只需要实现某个消息的消息处理函数. 一.添加消息处理函数 鸡啄米仍以前面的加法计算器的程序为例,说明怎样为“计算”按钮控件添加消息处理函数.添加方法列出4种: 1.使用Class Wizard添加消息处理函数 用过的VC++6.0的朋友应该对Class Wizard很熟

鸡啄米MFC教程笔记之四:对话框:创建对话框模板和修改对话框属性

---恢复内容开始--- 本节开始为大家讲解偏应用的知识-创建对话框. 对话框,大家应该很熟悉了,在我们常用的软件中大多都有对话框界面,例如,360安全卫士的主界面其实就是个对话框,只是它做了很多美工方面的工作,将其大大美化了. 创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板.设置对话框属性和为对话框添加各种控件:  第二,生成对话框类,主要包括新建对话框类.添加控件变量和控件的消息处理函数等. 这里鸡啄米就再创建一个基于对话框的应用程序,用来实现加法运算的功能.如下:

《Java编程思想》学习01:普通类的初始化加载顺序分析

<Java编程思想>学习01:普通类的初始化加载顺序分析 本文根据控制变量法,分析普通类(没有extends,implement)初始化的加载顺序: 参考<Java编程思想>第五章 源码 StaticClass1类 package com.tyj.study.thinkinjava; /* * *@Description: *@Author:TYJ *@Date: create in 2019/7/9 17:22 */ public class StaticClass1 { { S

鸡啄米MFC教程笔记之一:MFC和VC++

VC++简介 VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别就在于,C++是语言,而VC++是用C++语言编写程序的工具平台.VC++不仅是一个编译器更是一个集成开发环境,包括编辑器.调试器和编译器等,一般它包含在Visual Studio中.Visual Studio包含了VB.VC++.C#等编译环境.当然我们在使用VC++ 6.0的时候为了轻便,总是只单独安装VC++ 6.0.但自微软2002年发布Visual Studio.NET以来,微软建立了在

c++学习笔记之基础---类内声明函数后在类外定义的一种方法

在C++的“类”中经常遇到这样的函数, 返回值类型名 类名::函数成员名(参数表){ 函数体.} 双冒号的作用 ::域名解析符!返回值类型名 类名::函数成员名(参数表) { 函数体. } 这个是在类内声明函数后在类外定义的一种方法!如果不加"类名::"的话,编译系统就不会知道你的函数属于哪个类;另外,这样定义函数一定要在类中声明之后,说明它是类的成员函数才可以!在类内声明的时候就不需要::了,直接 返回值类型 函数名(参数表) 就可以了!

c++学习笔记之基础---类内声明线程函数的调用

近日需要将线程池封装成C++类,类名为Threadpool.在类的成员函数exec_task中调用pthread_create去启动线程执行例程thread_rounter.编译之后报错如下: spfs_threadpool.cpp: In member function ‘int Threadpool::exec_task(task*)’: spfs_threadpool.cpp:174: error: argument of type ‘void* (Threadpool::)(void*)