【C++】类和对象

我们要学习面向对象啦

那么,什么是对象呢?比如,学校里有一个个学生,这每一个个体都可以看作对象;而这些个体都是学生,可以抽象为学生类。作为学生,你我都存在一些特征。比如都有学号,都有所在的院系,有姓名、性别、年龄等等,这些属性称为成员变量 。而且都会干一些事情,比如上课、干饭、打游戏,这些行为称为成员函数

示例:

cpp 复制代码
#include<iostream>
class Student {//class + 类名 + {};
public:
    /*
    关键字 public 确定了类成员的访问属性。
    在类对象作用域内,公共成员在类的外部是可访问的。
    您也可以指定类的成员为 private 或 protected ,下面会讲
    */
    //成员变量
    const char* name;
    bool sex;
    int age;
    const char* sid;
    const char* dept;
    //成员函数
    void attendClass() {
        std::cout << "选修课必逃,必修课选逃" << std::endl;
    }
    void eat() {
        std::cout << "疯狂星期四v我50" << std::endl;
    }
    void playGame() {
        std::cout << "大残!一滴!" << std::endl;
    }
};//别忘了这个分号哦
int main() {
    Student stu;//创建对象,类实例化为对象
    //可以实例化多个对象
    Student stu1;
    Student stu2;
    //类的对象的公共数据成员可以使用直接成员访问运算符 . 来访问
    stu.name = "Root";
    stu.sex = 1;
    stu.age = 22;
    stu.sid = "141592653589";
    stu.dept = "computer science";
    std::cout << "我的名字是" << stu.name << "我来自" << stu.dept << std::endl;
    stu1.attendClass();
    stu2.eat();
    //通过"->"访问
    Student* stu3=new Student;
    stu3->playGame();
}

还记得结构体吗?有没有发现它和类很像?

C++中类和结构体的区别:

  1. 关键字不同
  2. 默认访问属性不同,结构体默认是公有访问属性(public),而类默认是私有访问属性(private)

除此之外没有区别,看个人的使用习惯

类成员的访问属性

  1. public公有属性:类外和类中都可以被直接访问,类外通过对象访问
  2. protected保护属性:类中及派生类中可以被直接访问,类外需要通过对象调用接口访问
  3. private私有属性:只有在类中才能被访问,类外需要通过对象调用接口访问

++类中如果有成员没有被访问属性修饰,默认是私有属性++

类中特殊成员

MORE

【C++】引用(reference)

【C++】构造函数

相关推荐
551只玄猫10 分钟前
【数学建模 matlab 实验报告10】插值
开发语言·数学建模·matlab·课程设计·插值·实验报告
ALex_zry10 分钟前
gRPC服务熔断与限流设计
c++·安全·grpc
I疯子12 分钟前
2026-04-08 打卡第 5 天
开发语言·windows·python
游乐码23 分钟前
c#ArrayList
开发语言·c#
C+++Python26 分钟前
Python MCP Server 最简实现
开发语言·python
6Hzlia29 分钟前
【Hot 100 刷题计划】 LeetCode 41. 缺失的第一个正数 | C++ 原地哈希题解
c++·leetcode·哈希算法
MinterFusion32 分钟前
如何在openKylin 2.0 SP2中安装Qt(v0.2.2)(上)
开发语言·qt·软件开发·系统维护·明德融创·openkylin
十五年专注C++开发32 分钟前
达梦数据库在Linux备份报错 -8003: 缺少本地或者远程归档 解决方案
数据库·c++·dm·备份复原
前端小D42 分钟前
JS模块化
开发语言·前端·javascript
无限码力42 分钟前
华为OD技术面真题 - JAVA开发- spring框架 - 7
java·开发语言·华为od·华为od面试真题·华为odjava八股文·华为odjava开发题目·华为odjava开发高频题目