C++学习日记(二)————初步字符串类型及包裹

 

 

如果输入管理员称(imooc):

 

应用功能高,但操作复杂的数额暴发什么?

 

代码举例:

如输入随机一个名,比如:

 

这样操作尽管操作上劳动把,但增长了代码的安全性以及全部性,值得拥有!

 图片 1

 

图片 2

 图片 3

 

召开生总括:

俺们只希望通过这样一个分子,获取“轮子的个数”而不指望设置,这虽然如此描绘。

图片 4

 

图片 5

图片 6

数码的包

 图片 7

为“setAge”标定函数意义,规定一个取值的限制,就拿点的问题让解决了!

下是伊始化string的使办法

那就是说什么样通过函数来封装数据成员为?如下例

 

 

 图片 8

坐目的呢主旨,具体来说就是只要盖,“什么人开什么”来抒发程序的逻辑,显示到代码的局面,就是以有着的次序,数据,操作转化为成员函数的调用,换句话说,对象在先后中之持有行止,都是经调用自己的函数,来好。

string的便民不只反映在初叶化的方面,还呈现于末端一整套底人性化的劳务。如下:

 

字符串类型:string 就这登场!

 

面向对象的核心境维:

比如此例中,给“stu.age”赋值1000的讲话,显明是来问题之,但假设经过数据的包装,就足以管此题材为解决掉了。

 

脚是一个装进的代码例子

推选个例子

 

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

/*数据的封装
定义一个Student类,含有如下要求:
1.姓名:name
2.性别:gender
3.学分(只读):score
4.学习:study
*/
class Student
{
public:
    void setName(string _name)
    {
        m_strName = _name;
    }
    string getName()
    {
        return m_strName;
         }
    void setGender(string _gender)
    {
        m_strGender = _gender;
    }
    string getGender()
    {
        return m_strGender;
    }
    int getScore()
    {
        return m_iScore;
    }
    void initScore()
    {
        m_iScore = 0;
    }
    void study(int _score)
    {
        m_iScore+=_score;//m_iScore=m_iScore+_score;
    }

private:
    string m_strName;
    string m_strGender;
    int m_iScore;

};
int main(void)
{
    Student stu;
    stu.initScore();
    stu.setName("zhangsan");
    stu.setGender("男");
    stu.study(5);
    stu.study(3);

    cout<<stu.getName()<<" "<<stu.getGender()<< " "<<stu.getScore()<<endl;
    system("pause"); 
    return 0;

}

int;
double;float;char;bool这一个项目用底比累,但并无复杂。但对于字符串来说(char数组)用之再三但操作以繁杂,只可以用同一多样函数来引用,咋样制伏呢?

图片 9

盖年龄是数目吧条例,我们定义了区区个分子函数,“setAge”用来安装年龄的价值。另一个凡是“getAge”用来读取年龄的价。

#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(void) 
{
    string name;
    cout<<"Please input your name";
    getline(cin,name);
    if(name.empty())
    {
        cout<<"input is null.."<<endl;
        system("pause");
    return 0;
    }
    if(name=="imooc")
    {
        cout<<"you are a adminstractor"<<endl;
    }
    cout<<"hello"+ name<<endl;
    cout<<"your name length :" << name.size() <<endl;//字符串和非字符串连接时不可以用“+”号,要用“<<”号 
    cout<<"your name first letter is:"<<name[0]<<endl;
    system("pause");
    return 0;
}

 

对来来数据成员,我们就期待这个成员为外边读取,而非欲吃外界改写,怎么写吗?如下例:

安好头文件后,直接定义一个名,爱好,并且可以直接出口,很便利!

多少封装的亮点:

图片 10