鸡啄米:C++编程之十三学习之类与对象,类的声明,成员的访问控制
1. 本次学习鸡啄米课程第13篇,把比较重要的学习记录下来,以敦促自己更好的学习。推荐他们的网址学习:http://www.jizhuomi.com/school/c/97.html
2. 在面向过程的设计中,程序的模块是函数构成的,而面向对象设计中程序模块是类构成的,函数只是语句和数据的封装,而类是函数和数据的封装,做了一段C++之后,才明白这句话的意思。其实类就是一种自定义的数据类型。可以定义某个类类型的变量,用类定义的变量叫做类的对象,这种定义对象的过程叫做实例化。
3. 不过一直有个疑问,函数可以不定在类里面吗?就像C语言的,这个函数不属于任何一个类?
4. 类的声明
class Clock
{
public:
void SetTime(int NewH,int NewM,int NewS);
void ShowTime();
private:
int Hour,Minute,Second;
};
5. 函数在类里面声明,然后具体实现放在类外面,要加个::
void Clock::SetTime(int NewH, int NewM, int NewS)
{
Hour=NewH;
Minute=NewM;
Second=NewS;
}
void Clock::ShowTime()
{
cout<<Hour<<":"<<Minute<<":"<<Second<<endl;
}
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测试一下。
鸡啄米:C++编程之十三学习之类与对象,类的声明,成员的访问控制的更多相关文章
- 鸡啄米:C++编程之十四学习之构造函数和析构函数
1. 本人学习鸡啄米课程的笔记记录,用来记录学习的历程和进度 2. 构造函数 我们在声明一个变量时,如果对它进行了初始化,那么在为此变量分配内存空间时还会向内存单元中写入变量的初始化.声明对象有相似的 ...
- MFC优秀博客记录 鸡啄米
最近在学习和利用C++ MFC做一些小的应用,发现鸡啄米先生的教程很不错适合新手,在这就把自己实现的一些小demo分享一下: C++编程入门系列之目录和总结 第一部分:C++编程概述 第二部分:C++ ...
- 推荐 VS2010入门教程—鸡啄米
http://www.jizhuomi.com/catalog.asp?tags=VS2010 推荐 VS2010入门教程—鸡啄米,真的非常使用和经典!
- c++学习笔记之基础---类内声明函数后在类外定义的一种方法
在C++的“类”中经常遇到这样的函数, 返回值类型名 类名::函数成员名(参数表){ 函数体.} 双冒号的作用 ::域名解析符!返回值类型名 类名::函数成员名(参数表) { 函数体. } 这个是在类 ...
- c++学习笔记之基础---类内声明线程函数的调用
近日需要将线程池封装成C++类,类名为Threadpool.在类的成员函数exec_task中调用pthread_create去启动线程执行例程thread_rounter.编译之后报错如下: spf ...
- 学习ASP.NET Core Razor 编程系列十三——文件上传功能(一)
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
- 阶段2-新手上路\项目-移动物体监控系统\Sprint2-摄像头子系统开发\第2节-V4L2图像编程接口深度学习
参考资料: http://www.cnblogs.com/emouse/archive/2013/03/04/2943243.htmlhttp://blog.csdn.net/eastmoon5021 ...
- 《JavaScript DOM 编程艺术》 学习笔记
目录 <JavaScript DOM 编程艺术> 学习笔记 第一章 js简史 第二章 js语法 准备工作 语法 第三章 DOM DOM中的D DOM中的O DOM中的M 第四章 js图片库 ...
- Python学习day34-面向对象和网络编程总结
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
随机推荐
- Hibernate双向一对多、双向多对多关联关系中的映射文件怎么写
这里以一对多关联关系为例.以Country类为一端,Competition类为多端. 一个国家可以有多个赛事,但是一个赛事只能属于一个国家. Country类 public class Country ...
- 2014年百度之星资格赛第一题Energy Conversion
Problem Description 魔法师百小度也有遇到难题的时候-- 如今.百小度正在一个古老的石门面前,石门上有一段古老的魔法文字,读懂这样的魔法文字须要耗费大量的能量和大量的脑力. 过了许久 ...
- 批量解压Zip文件
实现效果: 实现代码:
- CSS兼容性问题总结及解决方法
css兼容问题 兼容问题 1.文字本身的大小不兼容.同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的,ie下实际占高16px,下留白3px,ff下实际占高17px,上留白 ...
- VC++ MFC SDI/MDI Ribbon程序的停靠窗格被关闭后如何再次显示
VC++ 创建基于MFC的SDI应用程序,Visual Studio风格的主界面如下图所示,在该主界面上的视图菜单下包含有队对各个可停靠窗格显示或隐藏的控制菜单项.而基于Ribbon风格的应用程序,所 ...
- 关于iOS 3D touch 指纹验证的随笔
file:///Users/OWen/Desktop/3DTouch.png 随着iOS系统不断的更新迭代,苹果总会推出一些新的功能,今天就研究了一下iOS8之后推出的指纹验证的功能,然后写了一个小d ...
- springmvc错误集锦-dubbo包含低版本的spring包,依赖的时候应该排除Caused by: java.lang.reflect.MalformedParameterizedTypeException
dubbo 常见错误 1. Caused by: java.lang.reflect.MalformedParameterizedTypeException 启动时报错,原因是dubbo 依赖 spr ...
- ZOJ 1709 Oil Deposits(dfs,连通块个数)
Oil Deposits Time Limit: 2 Seconds Memory Limit: 65536 KB The GeoSurvComp geologic survey compa ...
- 使用Storyboard拖线容易出错的地方
使用Storyboard拖线容易出错的地方: 在Storyboard中,选中某个控件,按住ctrl键进行拖线,建立Outlet和Action后,不能手动再去修改自动生成的代码,然后再次进行连线,这样会 ...
- JavaScript-比较运算符
一.概述 > 大于运算符 < 小于运算符 <= 小于或者等于运算符 >= 大于或者等于运算符 == 相等运算符 === 严格相等运算符 != 不相等运算符 !== 严格不相等运 ...