C++基础:类与对象(1),学习使用类与对象,vector与string,this指针

本文介绍了C++中的类与对象的概念,包括类的定义、对象创建,详细讲解了类的封装、访问限定符以及如何通过对象作为参数和返回值。此外,还探讨了vector和string的使用方法,以及this指针的作用。
摘要由CSDN通过智能技术生成

1. 认识类与对象

类是用来创建对象的,类创建对象的过程就叫实例化

面向对象四大特征:

特征 说明 具体情况
抽象 抽出具体事物的普遍特性 把相同特性的函数放在同一类中
封装 把数据和处理包在一起 类中既可以定义变量成员又可以定义函数
继承 可以给别的函数使用 类中定义的成员可以相互使用
多态 同一个函数的多种形态,类似于重载 即使函数名同名他们也是不一样

2. 类的定义与对象创建

class 类名{
   
	成员变量成员函数声明
};

class定义的最后是有 ; 分号的,不能忘记

在main主函数中:
定义class类和struct结构体类似
访问class类中的成员函数,是使用 . 来访问的

类的构成:

  1. 成员变量:在类定义中声明,可以在成员函数中直接调用
  2. 成员函数:对象相关操作,可以在类内实现或类外实现

2.1 示例1:复数的加法

我们定义一个简单的类,用来打印复数,复数有实部和虚部

#include <iostream>

using namespace std;

class Complex{
   
public:                     //访问限定符,加了才能访问,与private相对
        int real;
        int imag;
        //设置实数
        void SetReal(int r){
   
                real = r;
        }
        //设置虚数
        void SetImag(int i){
   
                imag = i;
        }
        void Print(){
   
                cout << real << "+" << imag << "i" << endl;
        }
};

int main(){
   
        Complex c;
        c.real = 20;
        c.imag = 3;
        c.Print();

        c.SetReal(10);
        c.SetImag(5);
        c.Print();
}

结果为:

20+3i
10+5i

知识点1——类的封装:访问限定符号

public: 公有下的成员才能访问
private: 私有下的成员不能访问

成员函数可以不在class中定义,在class中声明即可,但在外面书写函数时需要加限定符

#include <iostream>
using namespace std;

class Complex{
   
public:
        // 只保留声明
        void SetReal(int r);
        void SetImag(int i);
        void Print();
private:
        int real;
        int imag;
};

// 需要加类的限定符
void Complex::SetReal(int r){
   
        real = r;
}
void Complex::SetImag(int i){
   
        imag = i;
}
void Complex::Print(){
   
        cout << real << "+" << imag << "i" << endl;
}

int main(){
   
        Complex c;
//      c.real = 20;
//      c.imag = 3;
        c.Print();

        c.SetReal(10);
        c.SetImag(5);
        c.Print();
}

结果为:

0+0i          // 随机值
10+5i

知识点2——对象做参数返回值

注意这两个函数在使用时的不同:

  1. Complex Add(Complex c1,Complex c2);
  2. Complex Complex::Add(Complex c);

创建函数时,在class内部和在class外部的使用情况是不一样的
内部的函数可以直接使用内部的real和imag,这表示就是c的
也可以把上述文件拆解出头文件,增加实部虚部相加功能:

complex.cpp 文件内容:

#include <iostream>
#include "complex.h"

using namespace std;

void Complex::SetReal(int r){
   
        real = r;
}
void Complex::SetImag(int i){
   
        imag = i;
}
int Complex::GetReal(){
   
        return real;
}
int Complex::GetImag(){
   
        return imag;
}
void Complex::Print(){
   
        cout << real << "+" << imag << "i" << endl;
}

// 调用class外部的函数&#x
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值