C++类和对象:类的定义和对象的创建
2021/8/27 17:36:06
本文主要是介绍C++类和对象:类的定义和对象的创建,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C++ 中的类可以看作是结构体(Struct)的升级,类的成员不但可以是变量,还可以是函数。
在C++中,可以用struct和class定义类,都可以继承。区别在于:struct 的默认继承权限和默认访问权限是public,而class的默认继承权限和默认访问权限是private。
1. 类的定义
class Student{ public: // 内联 void say(){ cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl; } private: string name; int age; float score; };
class 关键字定义类。Student 是类的名称,类名的首字母一般大写,以和其他的标识符区分开。{ }内部是类所包含的成员变量和成员函数,由{ }包围起来的部分有时也称为类体,和函数体的概念类似。public 表示类的成员变量或成员函数具有“公开”的访问权限,private 表示具有“私有”的访问权限。
类只是一个模板(Template),编译后不占用内存空间,所以在定义类时不能对成员变量进行初始化,因为没有地方存储数据。只有在创建对象以后才会给成员变量分配内存,这个时候就可以赋值了。
2. 创建对象
两种创建对象的方式:一种是在栈上创建,形式和定义普通变量类似;另外一种是在堆上使用
new 关键字创建,必须要用一个指针指向它,需要 delete 掉不再使用的对象。
2.1 在栈上创建对象
class Student { // ... } Student zhangSan; // 创建对象
2.2 在堆上创建对象
使用 new 关键字在堆上创建对象
Student *pStu = new Student;
在栈上创建出来的对象都有一个名字,比如 stu,使用指针指向它不是必须的。但是通过new 创建出来的对象就不一样了,它在堆上分配内存,没有名字,只能得到一个指向它的指针,所以必须使用一个指针变量来接收这个指针,否则以后再也无法找到这个对象了,更没有办法使用它。
也就是说,使用 new 在堆上创建出来的对象是匿名的,没法直接使用,必须要用一个指针指向它,再借助指针来访问它的成员变量或成员函数。
栈内存是程序自动管理的,不能使用 delete 删除在栈上创建的对象;堆内存由程序员管理,对象使用完毕后可以通过 delete 删除。
有了对象指针后,可以通过箭头->来访问对象的成员变量和成员函数,这和通过结构体指针来访问它的成员类似。
pStu -> name = "小明"; pStu -> age = 15; pStu -> score = 92.5f; pStu -> say();
通过对象名字访问成员使用点号.,通过对象指针访问成员使用箭头->,这和结构体非常类似。
这篇关于C++类和对象:类的定义和对象的创建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用
- 2025-01-03混合搜索:用LanceDB实现语义和关键词结合的搜索技术(应用于实际项目)