C++ string&类和对象&数据的封装

本文介绍了C++中string类型的基础用法,包括初始化、常用操作等,并详细讲解了如何通过类和对象进行数据封装,提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.String类型

因为char类型的麻烦,我们可以使用string类型来实现一些功能:

#include <iostream>
#include<string>
using namespace std;
int main()
{
string name = "zhangsan"
string hobby("football");
cout << name << hobby << endl;
return 0;
}

(1)string类型初始化:(初始化string对象的方式)

string s1 s1为空串
string s2(“ABC”) 用字符串字面值初始化s2
string s3(s2) 将s3初始化为s2的一个副本
string s4(n,’c’) 将s4初始化为字符串‘c’的n个副本

(2)好用的一些功能:

s.empty()
s.size() 返回个数
s[n] 返回s中位置为n的字符
s1+s2 链接字符串
s1 = s2 替换S1位S2的副本
v1 == v2
v1 != v2

=======================================================

2.类和对象

定义一个类:
class 类名(类名一般用英文全拼,不要简写)
对象是类的一些功能,如定义一个student类,里面就可以包含姓名,年纪。。。等等一些数据成员

class student
{
public:
    // 定义数据成员名字 m_strName 和年龄 m_iAge
    string m_strName;
    int m_iAge;
};

实例化对象通过栈的形式:

 student stu;

通过堆的形式:

student *p=new student( )
if(NULL == p)
{
      return 0; //申请失败
}
....
.....
delete p;
p = NULL;

设置对象的数据成员:
栈的形式使用 .调用
堆的形式使用 ->调用

=========================================

3.数据的封装

面向对象的基本思想围绕的是:
谁做什么来表达程序的逻辑,体现在代码方面就是将所有的数据操作转化为成员函数的调用,换句话说就是对象在程序中的所有行为都通过调用自己的函数来完成

(1)通过函数封装数据成员:(例如student)

class student
{
public:
      void setAge(int _age)
      {m_iAge = _age}
      int getAge()
      {return m_iAge;}
privatestring m_strName;
 int m_iAge;     
}
//注意命名方式
//类中定义时命名规则为m_数据类型+名字
//类中函数形参为_名字

(2)ex:
定义一个Student类,包含名字一个数据成员,使用get和set函数封装名字这个数据成员。在main函数中通过new实例化对象,并打印其相关函数。

#include <iostream>
#include <string>
using namespace std;

/**
  * 定义类:Student
  * 数据成员:m_strName
  * 数据成员的封装函数:setName()、getName()
  */
class Student
{
public:
    // 定义数据成员封装函数setName()
    void setName(string _name)
    {
        m_strName = _name;
    }


    // 定义数据成员封装函数getName()
    string getName()
    {
        return m_strName;
    }


//定义Student类私有数据成员m_strName
private:
    string m_strName;

};

int main()
{
    // 使用new关键字,实例化对象
    Student *str = new Student();
    // 设置对象的数据成员
    str->setName("慕课网");
    // 使用cout打印对象str的数据成员
    cout << str->getName() <<endl;

    // 将对象str的内存释放,并将其置空
    delete str;
    str = NULL;
    return 0;
}

**写函数记得写类型啊!!!无返回值就写void有就写要返回的类型!!!要记得!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值