C++类的初识

简介: C++类的初识

目录

结构体初识

从结构体到类

结构体初识

什么是结构体?

在学类之前我们一定有所了解,所谓结构体就是一种自定义的数据类型,它可以将有相关性的数据组合起来,并且能够将它们组成一个单独的统一体,比如我可以用一下方法来声明一个成绩结构体,下面来看一个栗子:

该结构体中包含了两个数据元素

#include <iostream>
using namespace std; 
struct Score {
  int age, score;
};
int main() {
  Score score1;
  score1.age = 18;
  score1.score = 100;
}

但是结构体有这么多好处,那么结构体的缺点是什么呢?比如我们建立了一个结构体变量。我们可以随便在外部直接对结构体中的数据进行访问,但是在代码编写出来是我们就不会想把所有数据都展示给外部,有些数据是绝对不可以。在外部随意访问的,比如你写了一个登入系统,你就不想让所有用户的账号密码能够在外部进行随意访问,所以在C++中引入了类的概念,它可以更好的解决C结构体的这些缺点。

从结构体到类

C++中的类就是可以解决上面问题的一种安全有效的数据类型,类和结构体的扩充的形式是非常相似得到,类声明中内容包括了数据成员和成员函数,并且数据成员和成员函数又可以分为公有,保护,和私有三种,以下是类声明的一般形式

Class 类名{
    Public:
    ……
    protected:
    ……
    private:
    ……
};

类的声明是以关键字class。注意类体的最后一个花括号是以分号结尾的

下面就来看一个关于类的例子:

#include <iostream>
using namespace std;
class Time{
  public:
    void SetTime(int h,int m,int s);
    void Print_Time();
  private:
    int Hour,Minute,Second;
};
void Time::SetTime(int h,int m,int s){
  Hour = h;
  Minute = m;
  Second = s;
}
void Time::Print_Time(){
  cout << Hour << ":";
  cout << Minute << ":";
  cout <<Second << endl;
}
int main(){
  Time mytime;
  mytime.SetTime(9,20,30);
  mytime.Print_Time();
  system("pause");
  return 0;
}

在这个类中我们创建了两个函数        void SetTime(int h,int m,int s)用来创建对时间变量进行初始化和  void Print_Time();这个函数的作用是对创建的时间对象输出它的Hour,Minute,second这三个数据成员对应的值

下面就是该代码执行后的结果:


相关文章
|
1月前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
51 2
|
1月前
|
存储 编译器 C++
【c++】类和对象(下)(取地址运算符重载、深究构造函数、类型转换、static修饰成员、友元、内部类、匿名对象)
本文介绍了C++中类和对象的高级特性,包括取地址运算符重载、构造函数的初始化列表、类型转换、static修饰成员、友元、内部类及匿名对象等内容。文章详细解释了每个概念的使用方法和注意事项,帮助读者深入了解C++面向对象编程的核心机制。
105 5
|
1月前
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
94 4
|
1月前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
111 4
|
2月前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
32 4
|
2月前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
32 4
|
2月前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
29 1
|
2月前
|
存储 编译器 C++
【C++类和对象(下)】——我与C++的不解之缘(五)
【C++类和对象(下)】——我与C++的不解之缘(五)
|
2月前
|
编译器 C++
【C++类和对象(中)】—— 我与C++的不解之缘(四)
【C++类和对象(中)】—— 我与C++的不解之缘(四)
|
2月前
|
存储 编译器 C语言
【C++类和对象(上)】—— 我与C++的不解之缘(三)
【C++类和对象(上)】—— 我与C++的不解之缘(三)