打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何创建C++之类和对象

https://m.toutiao.com/is/DasuW2H/ 


什么是类和对象

C++是一种面向对象的编程语言,其中类和对象是面向对象编程的基本概念之一。

  • 类可以看作是一个模板或者蓝图,用来描述具有相同属性和方法的一组对象。
  • 对象则是这个类的实例化,代表着一个具体的实体。

C++面向对象的三大特性为:封装、继承、多态,C++认为万事万物都皆为对象,对象上有其属性和行为。

举个例子:大伙的女朋友可以抽象为一个女朋友类,属性有姓名、年龄、身高、体重…,行为有唱、跳、rap…,而你的女朋友就是对象,具体的姓名叫做小芳,年芳18,黄金身材。这就是类的具体化,也叫作实例化过程。

如何创建一个类

如何创建一个类| 基本语法

在C++中,我们可以使用关键词 class 来创建一个类。下面是一个简单的类的定义示例:

这个类叫做 GirlFriend,包含了两个属性 m_namem_age,以及三个方法 sing(),jump(),rap()。类中声明,类外实现的函数必须用类名限定,其中 public,protected,private 是访问控制修饰符

如何创建一个类| 访问控制修饰符

在C++中,有三个访问控制修饰符:publicprivateprotected。它们的作用是限制对象的属性和方法在哪些地方可以被访问。

  • public:公有访问权限,表示类的外部和派生类可以访问这个属性或方法。
  • protected:保护访问权限,表示只有类内部和派生类的方法可以访问这个属性或方法。
  • private:私有访问权限,表示只有类内部的方法可以访问这个属性或方法。
  • 无访问控制修饰符,类中默认为private属性,结构体中默认为public属性

目前来说只需要知道,类外对象只能访问public下面的属性和方法。protected和private都不可访问,后续继承中protected和private会有所不同。

如何创建对象和访问数据

C++对象的创建是由构造函数完成的,下一章节做详细讲解,目前学会创建无参对象即可,创建一个无参对象的方法很简单,把类名当做一个新的数据类型即可,一般有以下两种方式

  • 类名 对象名;
  • new一个对象类名* 指针名=new 类名;

C++类的对象访问属性和方法非常简单,和C语言结构体一样的方式,如果是普通对象用.访问,如果是对象指针用->访问。如下测试代码

#include <iostream>#include <string>class GirlFriend { int m_money;public: void sing() { std::cout << 'Sing' << std::endl; }protected: std::string m_name;private: int m_age;};int main(){ //new一个对象 GirlFriend* p = new GirlFriend; //创建一个对象 GirlFriend object; //外部访问:只能访问public属性 p->sing(); object.sing(); //默认属性是private不可访问 //以下代码错误 //object.m_money; return 0;}

三种属性操作

C++类中属性的初始化通常是由构造函数完成,暂时没讲构造函数,可以看看以下三种属性操作方式:

  • 直接在创建的时候初始化
  • 通过成员函数传参方式访问数据
  • 通过成员函数返回引用的方式访问数据

如下测试代码

#include <iostream>#include <string>class GirlFriend {  //1.直接给默认值  int m_money=0;public:  //2.传参操作数据  void setData(std::string name, int age, int money)   {    m_name = name;    m_age = age;    m_money = money;  }  //3.返回引用  std::string& getName() { return m_name; }  int& getAge() { return m_age; }  int& getMoney() { return m_money; }  void print()   {    std::cout << m_name<<'\t'<< m_age<<'\t'<< m_money << std::endl;  }protected:  std::string m_name='默认';private:  int m_age=0;};int main(){  GirlFriend object;  object.print();  object.setData('baby', 18, 100);  object.print();  object.getName() = 'moying';  object.getAge() = 16;  object.getMoney() = 100;  object.print();  return 0;}

运行结果如下

相关

如果阁下正好在学习C/C++,看文章比较无聊,不妨关注下关注下小编的视频教程,通俗易懂,深入浅出,一个视频只讲一个知识点。视频不深奥,不需要钻研,在公交、在地铁、在厕所都可以观看,随时随地涨姿势。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C# 术语
《C#语言程序设计项目教程》第7章 面向对象编程写字字帖
python反射本质、属性访问规则常见应用案例
C# 封装实例
c++简单整理
java基础
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服