程序设计B_作业一——一、阶段知识总结及使用

1.标准库类型string

(1)使用string 类要包含头文件<string>

(2)string的常用操作

 

1)使用标准库中iostream可以读写string对象

2)可以用循环读取未知数量的string对象(键盘输入时,遇空格或回车结束)

 

 3)getline()函数(遇回车时结束)

4)size()函数返回string对象的长度,即对象中字符的个数

5)用下标运算符可以访问string对象中指定位置的字符(string对象s的下标范围从0到s.size()-1)

2.C++的数据类型

 

结构体

(1)结构体的定义与结构体变量的声明:

            在这里插入图片描述
(2)结构体变量特点:
                在这里插入图片描述
(3)结构体中可以定义函数:(此函数内定义变量,无需结构体变量名.成员名形式)                                                                 
               在这里插入图片描述  

运算符重载

成员函数

3.指针和引用

指针

指针:持有一个对象的地址,称为指针“指向”这个对象。

取地址运算符“&”
      指针存放指定类型的对象的地址,需要用取地址符“&”来获取对象地址。
          类型 *  指针变量
例如 



注意:

指针不能指向不同类型的对象,并且指针不能保存非地址值,也不能被赋值或初始化为不同类型的地址值。
自加、自减运算适用于指向数组元素的指针。

空指针

表示空指针的2种方法

    ①0; ②预处理常量NULL     <cstdlib>

 指针解引用运算符“*”

如果指针指向一个对象,则可以通过指针间接访该对象,使用指针解引用运算符“*”

      

new运算符

delete运算符

const限定指针

数组元素和地址

begin()和end()

begin(数组名)       返回指向数组第一个元素的指针

end(数组名)          返回指向数组最后一个元素的下一个位置的指针

4.类

C++类定义的格式:

class  类名

{

   public:       公有数据成员和成员函数;类的外部接口

   protected: 保护数据成员和成员函数;仅允许本类成员函数及派生类成员函数访问

   private:      私有数据成员和成员函数;仅允许本类成员函数访问

}分号不能省略

类的数据成员可以是其他类的对象,但不能以类自身的对象作为本类的成员,而类自身的指针和引用可以作为类的成员

 class Student 	     //定义学生类Student
{
  public: 		     //声明类成员 
	    void display();
  private: 
	    string name;
        string id;
        char sex;
	    int age;
	    double score;
}; 	//类定义以分号结束 

成员函数的定义

  

对象的定义 (必须在定义了类之后,才可以定义类的对象)

         类成员的访问

       对象成员的访问包括:

       ●圆点访问形式:对象名.公有成        ●指针访问形式

类定义和使用时应注意:

1. 在类的定义中 不能 对数据成员进行 初始化
2. 类的任何成员都必须指定访问属性,一般将 数据成员 定义为 私有成员 保护成员 ,将 成员函数 定义为 公有成员
3. 类中的数据成员可以是 C++语法规定的任意数据类型。
4. 类的成员可以是其他类的对象,称为 类的组合 。但不能以类自身的对象作为本类的成员。
5. 类定义必须以分号“;”结束
6. class struct的不同:
class 中,成员缺省情况是 private。
struct 中,成员缺省情况是 public。

 

函数重载

函数名相同,但参数不相同(类型不同,或者个数不同)的一组函数。

5.构造函数和析构函数

构造函数 (一定写两个以上:一个不带参的,一个带参的)

利用构造函数创建对象有以下两种方法:

构造函数初始化成员有两种方法:
 
A.使用构造函数的函数体进行初始化

class Date
{
	int d, m, y;
public:
	Date(int dd, int mm, int yy)
	{
		d=dd;
		m=mm;
		y=yy;
	}
	Date(int dd, int mm)
	{
		d=dd;
		m=mm;
	}
}

B.使用构造函数的初始化列表进行初始化 

class Date
{
	    int d, m, y;
    public:
	    Date(int dd, int mm, int yy):d(dd),m(mm),y(yy)
		{	}
	    Date(int dd, int mm): d(dd),m(mm)
		{	}
}

必须使用参数初始化列表对数据成员进行初始化的几种情况

      

类成员的初始化的顺序:按照数据成员在类中的声明顺序进行初始化,与初始化成员列表中出现的顺序无关

this指针

复制构造函数

#include <iostream>
using namespace std;
class Box{
public:
	Box(int =10, int =10, int =10);
	Box(const Box & b)
	{height=2*b.height;	width=2*b.width;length=2*b.length;}
	int volume();
private:
	int length, height, width;
};

浅复制与深复制

定义支持深复制的复制构造函数

类的其他成员

常对象

常成员函数

静态成员

静态函数仅可以访问静态成员,或是静态成员函数或是静态数据成员。

静态成员函数没有this指针,只能对静态数据操作

 

友元函数      不建议使用

友元类

friend class 类名;

 

6.运算符重载

运算符函数可以重载为成员函数友元函数

 1)一元运算符       Object  op    或    op  Object

 2)二元运算符      ObjectL  op ObjectR

双目运算符一般可以被重载为友元运算符函数或成员运算符函数,当操作数类型不相同时,必须使用友元函数。

3)重载运算符[ ]和( )

 

重载输出运算符<<”(只能被重载成友元函数,不能重载成成员函数)

      //定义输出运算符“<<”重载函数的一般格式如下:
    ostream& operator<<(ostream& out,class_name& obj)
    {
          out<<obj.item1;
          out<<obj.item2;
          //.. .
          out<<obj.itemn;
          return out;
    } 

重载输入运算符“>>” (只能被重载成友元函数)

        // 定义输入运算符函数 “>>”重载函数的一般格式如下:
    istream& operator>>(istream& in,class_name& obj)
    {
            in>>obj.item1;
            in>>obj.item2;
         //   . . .
            in>>obj.itemn;
            return in;
    } 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值