C++String类型、内存分区、构造函数

  • String类型
    string 的 常 用 操 做 若 s 为 空 串 则 返 回 true , 否 则 返 回 false s.empty() 返 回 s 中 字 符 的 个 数 s.size() 返 回 s 中 位 置 为 n 的 字 符 , 位 置 从 0 开 始 s[nl 将 两 个 串 连 接 成 新 串 返 回 新 生 成 的 串 sl+S2 把 sl 得 内 容 替 换 为 s2 的 副 本 2 判 定 相 等 , 相 等 返 回 true , 否 则 返 回 false 判 定 不 等 , 不 等 返 回 true , 否 则 返 回 false
  • getline(cin,变量);这是用来获取 用户输入的函数
  • 面向对象的基本思想是:用谁,做什么来表达程序的逻辑
    在代码层面,就是将所有的数据操作转化为成员函数的调用
  • 数据的封装的好处
    可以有效的控制输入的数据的正确性
  • 类内定义与内联函数关系:
    类内定义是指把函数定义都放在类内
    两者的关系:类内定义相当于在函数前面加inline,在代码中不会写明,
  • 类内定义与类外定义
    类外定义:成员函数的函数体写在类的外面类外定义分类:同文件类外定义、分文件类外定义同文件类外定义:成员函数,在类外面,但是在同一个文件中
    class Car public: void run() ; void stop(); void changeSpeed(); void Car::run() { } void Car::stop() void Car::changeSpeed() {}
    分文件类外定义:与之相反,在不同的文件中
    其定义方式:首先定义一个头文件.h,在相应的.cpp文件中#include对应的头文件.hCar . h class Car public: void run() ; void stop(); void changeSpeed(); Car. cpp #includelcmao 栈 就 是 驿 站 , 相 当 于 亻 主 宾 馆 , 被 子 , 卫 生 啥 的 有 服 务 员 打 理 堆 相 当 于 自 己 的 家 需 要 自 己 打 理
  • 内存分区
    : int x = O; int *p = NULL; : int *p = new int[20]; : string str=
    栈区由操作系统来控制
    堆区由程序猿来操作和管理
  • 对象初始化分为两种:直接初始化、拷贝初始化
    1. string str1(10,'9');//直接初始化  
    2. string str2(str1);//直接初始化  
    3. string str3 = str1;//拷贝初始化  
        有且仅有一次、根据条件初始化
  • 【注意】【知识点】构造函数:在对象实例化的时候自动调用,但只会调用一次 ,相当于用户自定义类中各个参数的值
    规则和特点:
    • 构造函数与类同名
    • 构造函数没有返回值
    • 构造函数可以有多个重载形式
    • 实例化对象时只会用到重载的构造函数中的一个
    • 当用户没有定义构造函数时编译器会自动生成一个构造函数
  • 构造函数的实现方式(三种)
    • 无参数的构造函数
      class Student public: Student(){m_strName private: string m_strName; Jim
    • 有参数的构造函数
      class Student public: Student(string name) {m_strName = name;} private: string m_strName;
    • 重载构造函数
      class Student public: Student9{m_strName — Student(string name) {m_strName = name;} private: string m_strName; Jim
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章