| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C++类和对象(上) -> 正文阅读 |
|
[C++知识库]C++类和对象(上) |
目录 -------------------------------------------------------------------------------------------------------------------------------
C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。
C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。比如:在定义结构体的时候,用C语言方式实现的初始化,结构体中只能定义变量;现在以C++方式实现,会发现struct中也可以定义函数,当然C++中一般来说会用class来代替。
如上可以直接将函数写进结构体里。
class为定义类的,name为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。 类的两种定义方式:1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。 2. 类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::
1.单词与单词之间首字母大写分隔 2. 单词全部小写,单词之间用-分割 3.函数名,类名等所有单词首字母大写 4.变量首字母小写,后面单词首字母大写 5.成员变量首字母前加-
C++实现封装的方式:用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的用户使用。 访问限定符的说明1. public修饰的成员在类外可以直接被访问
C++需要兼容C语言,所以C++中struct可以当成结构体使用。另外C++中struct还可以用来定义类。和class定义类是一样的,区别是struct定义的类默认访问权限是public,class定义的类默认访问权限是private。
“封装就是把细节都隐藏起来,只留下简单的接口供使用者调用。?封装使类成为一个具有内部数据的自我隐藏能力、功能独立的软件模块。 封装就是指利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象类型的内部,系统的其他部分只有通过包裹在 数据外面的被授权的操作,才能够与这个抽象数据类型交流与交互。”
类定义了一个新的作用域,类的所有成员都在类的作用域中。在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。
?类中既可以有成员变量,又可以有成员函数,那么一个类的对象中包含了什么? 结论:一个类的大小,实际就是该类中”成员变量”之和,当然要注意内存对齐注意空类的大小,空类比较特殊,编译器给了空类一个字节来唯一标识这个类的对象。
关于this指针,为什们要有这个东西,因为类中的成员函数,你要去调用,前面说过成员函数是放在公共代码区,但你去对一个类实例化两个对象,函数如何分辨你是哪个对象,这里就需要this指针,简单点说就是C++编译器函数增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有“成员变量”的操作,都是通过该指针去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。 其实说白了就是this指针会告诉函数是那个类对象
1. this指针的类型:类类型* const,即成员函数中,不能给this指针赋值。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 8:34:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |