C++自学笔记(day2)

这篇博客详细介绍了C++中的类和对象,包括类的基础、学生类的实现、构造函数、对象成员、拷贝构造的浅拷贝与深拷贝,以及析构函数的使用。通过实例代码class.cpp、studentClass.cpp、constructor.cpp、objectMember.cpp、shallowCopy.cpp、deepCopy.cpp和destructor.cpp进行讲解,并提供了小练习和相关数学公式。
摘要由CSDN通过智能技术生成

二、类和对象

1.类基础

class.cpp
#include <iostream>
using namespace std;
/*
1.类体中默认权限为:private
2.成员函数在类体之外的定义语法:
    数据类型 类名::函数名(<参数列表>){ 函数体 }
3.成员变量的作用域:
    整个类的作用域( 类域 ):类的所有成员函数的函数体区域
4.类的所有成员函数都有一个特殊的指针:this ,指向访问当前成员函数的对象
5.类:
    代码角度:用户自定义的数据类型,由class进行说明
    抽象角度:对象的类型,是一批对象的共性和特征,是对象的抽象概括
6.对象:
    代码角度:就是一个变量
    抽象角度:具备行为和属性的事物,一切皆为对象,也是类的实例
7.OOP思想:面向对象程序设计
    1) 抽象:就是声明一个类,抽象概括出一类对象的公共性质
        数据抽象:设置成员变量
        代码抽象:设置成员函数
    2) 封装:将数据成员和成员函数结合在一起,形成一个整体,就是类体部分
*/
class Student{
     //声明定义 Student 类
public:
    void setValue(char, int);   //成员函数的声明
private:
    char sex;
    int age;
};void Student::setValue(char sex, int age){
     //成员函数的定义
    this->sex = sex;
    this->age = age;
}int main(int argc, char *argv[]){
   
    class Student stu;  //定义一个对象,实质是定义一个变量
    //stu.age = 18;     //私有变量不能直接访问
    stu.setValue(1, 4);
    class Student *stu1;    //定义一个对象指针,实质是定义一个指针
    Student stu2;   //class 关键字可以省略
    Student *stu3;
    
    stu1 = &stu;
    stu3 = new Student;     //开辟一个堆区空间,首地址给stu3
    
    stu1->setValue(2, 3);   //对象指针访问成员使用 ->
    return 0;
}

2.简单的学生类

studentClass.cpp
#include <iostream>
using namespace std;
class Student{
   
public:
    void setValue(int, float);
    int getAget();
    float getWeight();
private:
    int age;
    float weight;
};void Student::setValue(int age, float weight){
   
    this->age = age;
    this->weight = weight;
}int Student::getAge(){
   
    return age;
}float Student::getWeight(){
   
    return weight;
}int main(int argc, char *argv[]){
   
    Student stu;    //定义一个对象
    stu.setValue(18, 120);
    
    Student stu1;
    stu1 = stu;     //默认赋值运算
    cout << stu1.getAge() << endl;  //18
    
    Student *p;
    p = &stu;       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值