首页 > 编程语言 >c++的类和对象

c++的类和对象

时间:2024-09-06 17:57:05浏览次数:9  
标签:cout 对象 void c++ public STUDENT 成员 函数

类和对象

什么是类

把抽象结果(利用面向对象的思维模式,思考、观察出的结果),使用用C++的语法封装出一种类似结构的自定义数据类型(复合数据类型)。

如何设计类
struct 结构名
{
    成员函数;   // 结构的成员默认访问权限是public
    成员变量;
};
​
class 类名
{
    成员变量;   // 结构的成员默认访问权限是private
    成员函数;
};
​
注意:在C++中类的结构除了成员的默认访问权限不同,没有任何区别(大师兄说的)。
访问限制符

使用以下关键字修改结构、类的成员,管理它们的访问权限:

private: 私有的,被它修饰的成员,只能在类的成员函数内使用。
protected: 保护的,被它修饰的成员,只能在类、子类的成员函数内使用。
public: 公开的,被修饰的成员,可以在任何位置使用。
#include <iostream>
using namespace std;
​
struct Student
{
    void in(void)
    {   
        cout << "请输入学生的学号、姓名、年龄、成绩:"; 
        cin >> id >> name >> age >> score;
    }   
    void out(void)
    {   
        // 学号:10010 姓名:hehe 年龄:18 成绩:100
        cout << "学号:" << id << " 姓名:" << name << " 年龄:" << age << " 成绩:" << score << endl;
    }   
private:
    int id; 
    char name[20];
    short age;
    float score; 
};
​
class Student
{
    int id; 
    char name[20];
    short age;
    float score;   
public:
    void in(void)
    {   
        cout << "请输入学生的学号、姓名、年龄、成绩:"; 
        cin >> id >> name >> age >> score;
    }   
    void out(void)
    {   
        // 学号:10010 姓名:hehe 年龄:18 成绩:100
        cout << "学号:" << id << " 姓名:" << name << " 年龄:" << age << " 成绩:" << score << endl;
    } 
};
​
int main(int argc,const char* argv[])
{
    Student stu;
    stu.in();
    stu.out();
    return 0;
}
什么是类对象

使用设计好的类(结构)这种数据类型,定义出的类变量在面向对象编程语言中被称为对象(结构变量),创建类对象的行为也被称为实例化对象。

#include <iostream>
using namespace std;
​
class Student
{
    int id; 
    char name[20];
    short age;
    float score;
public:
    void in(void)
    {   
        cout << "请输入学生的学号、姓名、年龄、成绩:"; 
        cin >> id >> name >> age >> score;
    }   
    void out(void)
    {   
        // 学号:10010 姓名:hehe 年龄:18 成绩:100
        cout << "学号:" << id << " 姓名:" << name << " 年龄:" << age << " 成绩:" << score << endl;
    }   
};
​
Student stu; // 在bss内存段上实例化对象
int main(int argc,const char* argv[])
{
    Student stu; // 在stack内存段实例化对象
    Student* stup = new Student; // 在heap内存段实例化对象
}

类的声明与实现分开

如果类的内容不多,一般会选择只定义一个头文件,以类名作为文件名。

#ifndef STUDENT_H
#define STUDENT_H
​
class 类名
{
    // 定义成员变量
public:
    // 定义成员函数
};
​
#endif//STUDENT_H

如果类的内容比较多,会选择把类的声明与定义分开,头文件负责类的声明,源文件负责类的实现。

#ifndef STUDENT_H
#define STUDENT_H
​
class 类名
{
    // 定义成员变量
public:
    // 声明成员函数
    void 函数名(参数列表);
};
​
#endif//STUDENT_H
#include "student.h"
​
void 类名::函数名(参数列表)
{
    
}

标签:cout,对象,void,c++,public,STUDENT,成员,函数
From: https://blog.csdn.net/zzt_is_me/article/details/141966120

相关文章

  • C语言面向对象
    我们在编写程序时,通常采用以下步骤:将问题的解法分解成若干步骤使用函数分别实现这些步骤依次调用这些函数这种编程风格的被称作面向过程。除了面向过程之外,还有一种被称作面向对象的编程风格被广泛使用。面向对象采用基于对象的概念建立模型,对现实世界进行模拟,从而完......
  • 修复Microsoft Visual C++ 2015中msvcp140_ATOMIC_WAIT.dll缺失的5大策略
    在电脑使用过程中,我们经常会遇到一些错误提示,其中之一就是“msvcp140_ATOMIC_WAIT.dll丢失”。这个错误提示通常出现在运行某些程序或游戏时,给使用者带来了很大的困扰。那么,如何解决这个问题呢?一,原因分析msvcp140_ATOMIC_WAIT.dll是MicrosoftVisualC++2015运行时库的一部......
  • C++常见知识掌握
    1.Linux软件开发、调试与维护内核与系统结构Linux内核是操作系统的核心,负责管理硬件资源,提供系统服务,它是系统软件与硬件之间的桥梁。主要组成部分包括:进程管理:内核通过调度器分配CPU时间给各个进程,实现进程的创建、调度、终止等操作。使用进程描述符(task_struct)来存储进程......
  • 案例分析:大对象复用的目标和注意点1
    对于“大对象”的优化。这里的“大对象”,是一个泛化概念,它可能存放在JVM中,也可能正在网络上传输,也可能存在于数据库中。那么为什么大对象会影响我们的应用性能呢?第一,大对象占用的资源多,垃圾回收器要花一部分精力去对它进行回收;第二,大对象在不同的设备之间交换,会耗费网络流量......
  • 信奥赛C++老师解一本通题:1182:合影效果
    ​【题目描述】小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?【输入】第一行是人数nn(2≤n≤......
  • PHP8面向对象快速入门五 接口 抽象类
    在PHP中,接口是一种定义方法但不实现它们的方式。接口可以被类实现,使得这些类承诺实现接口中定义的所有方法。接口主要用于定义类的共同行为,而不涉及具体的实现细节。以下是PHP接口的基本用法:定义接口interfaceAnimal{publicfunctionmakeSound();publicfunct......
  • GESP C++三级真题 (2023年3月):春游,密码合规检测
    春游题目描述老师带领同学们春游。已知班上有N位同学,每位同学有从0到N-1的唯一编号。到了集合时间,老师确认是否所有同学都到达了集合地点,就让同学们报出自己的编号。到达的同学都会报出的编号,不会报出别人的编号,但有的同学很顽皮,会多次报出。你能帮老师找出有哪些同学没有到......
  • D19 kubernetes 工作负载资源对象
    在kubernetes中,通常不会直接创建pod。都是使用工作负载资源deployment、statefulset来创建和管理pod。这种方式简化了pod的管理,提供了诸多如多副本、滚动和更新、回滚和自动扩展等告警功能,使得部署和管理应用程序变得方便和搞笑工作负载资源概述工作负载资源是kubernetes......
  • C++创建与调用dll动态链接库(MinGW64 Dev-C++)
    本文使用的是dev-c++,如果涉及到VC++中不一样的操作,也会适当进行区分。项目一:创建DLL1、创建一个DLL类型的项目,当前命名为dlltest,并选择合适的路径进行保存。 2、在生成的预设置代码中,加入如下代码//这是头文件dll.h#ifndef_DLL_H_#define_DLL_H_#ifBUILDING_DLL#de......
  • 【C++】简单易懂的vector迭代器
    一、迭代器的本质vector的迭代器本质上就是一个被封装的指针。迭代器的用法和指针的用法十分相似,就是一个像指针的假指针,我们不妨把迭代器看作一个伪指针。二、迭代器的使用句式(可以看到迭代器和指针很像):迭代器有四种:1、正向迭代器:容器名<类型>::iterator迭代器名2、常......