鱼C论坛

 找回密码
 立即注册
查看: 1986|回复: 0

[技术交流] C++(12th for one):对象

[复制链接]
发表于 2021-2-9 19:52:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 一叶枫残 于 2021-2-9 20:31 编辑

对象

首先先说类,类是一个模型,当我们为这个类创造实例的时候,这个实例就是对象;
结构体与对象的区别:对象的内部可以有变量,而结构通常只由各种变量构成
声明一个类:
  1. class Notebook                //跟在class后面的是你想创建类的名字
  2. {                               
  3.         ;
  4. };
复制代码

注意,类名的第一个字母采用大写是一种习惯上的标准,但不是硬性规定
声明类后面也有一个分号;

对于一个类,里面可以声明变量,声明函数,对于变量它是类的属性,对于函数它是类的方法;
声明变量之前我们写除public,如下
  1. class Notebook
  2. {
  3. public:                        //public不写编译器是不会报错的,请注意写;
  4.         int num;
  5.         std::string color;
  6.         char size;
  7.         int elect;  
  8. };
复制代码

然后我们可以在里面声明函数
  1. class Notebook
  2. {
  3. public:
  4.         int num;
  5.         std::string color;
  6.         char size;
  7.         int elect;
  8.        
  9.         void printf_desktop();
  10.         void charge(int ma);
  11. };
复制代码

之后我们就可以定义函数了,写在我们声明的类的下面(不是里面)
  1. void Notebook::printf_desktop()
  2. {
  3.         ;
  4. }
  5. void Notebook::charge( int ma )
  6. {
  7.         ;
  8. }
复制代码


知识补充:域操作符(::)
作用:告诉编译器这个方法属于哪一个类
(养成习惯尽量不用 using namespace ...)

C++允许在类里面声明变量,但不允许对它进行赋值(这个赋值是在类的声明里面赋值),例如
  1. class Notebook
  2. {
  3. public:
  4.         int num = 11235;
  5. };
复制代码

我们对num进行了赋值,会让编译时出现Warning;
但是我们可以创建一个静态变量进行赋值
  1. class Notebook
  2. {
  3. public:
  4.         static const int full_elect = 100;
  5. };
复制代码


我们允许在声明一些类的同时同时创建该类的对象,但不是一种良好的编程习惯,如下
  1. class Notebook
  2. {
  3.         ;
  4. }Notebook1 , Notebook2;
复制代码

我们可以在主函数里面创建该类的对象,方法是类名加对象名
  1. Notebook Notebook1,Notebook2;
复制代码

创建之后我们就可以进行赋值操作与函数调用(即方法使用),方法如下
  1. Notebook1.color = "blue";
  2. Notebook1.printf_desktop();[code]
  3. 对于同一个类的两个对象来说,可以使用以下方法把一个对象的属性赋值给另一个对象
  4. [code]Notebook2 = Notebook1;
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 09:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表