ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++ 学习总结报告(二)

2019-04-13 18:49:30  阅读:215  来源: 互联网

标签:初始化 const 函数 总结报告 对象 成员 C++ 学习 构造函数


类和对象

一:类的定义
1:C++允许用户以类的形式自定义数据类型,反映待解决问题中的各种概念,以更自然的方式编写程序。
2:结构体内的函数被称为成员函数,结构体中的数据则称为数据成员。扩展的结构体被称为类,结构体类型的变量被称为对象。
3:数据成员的类内初始化
没有初始值的成员将被默认初始化。数据成员类内初始值只能放在等号“=”右边,或者放在花括号“{}”里,不能使用圆括号“()”。
4:成员函数的类外定义
类外定义的成员函数名字前面要加类名字和作用域符“::”,表示这个函数是在其所属的类作用域内,是这个类的成员函数,不同于全局函数。
二:访问控制和封装
1:访问限定符
struct 类名
{
  public:
  公有成员声明;
  private:
  私有成员声明;
  protected:
  被保护成员声明;
};
(1)public 成员在程序的任何函数或类中都可以被访问,private 成员只能由类自己的成员函数或友元访问,protected 成员可以在派生类中访问。
(2)如果没有指定访问限定符,struct 成员的默认访问限制为public。
2:类和对象
(1)将数据和操作捆绑在一起,并加上访问控制,称为封装。数据描述对象的属性,操作描述对象的行为。
(2)发送消息就是调用成员函数。例如s.print()就是向对象s 发送一个print()消息。
(3)C++引入了一个关键字class 来定义类。如果class的成员没有设置访问限定符,则默认为private。
3:this 指针
  每个成员函数都有一个隐含的参数,指向接收消息的对象,称为this指针。X类的this指针的类型是X*。this指针是一个常量,含有当前实施调用的对象的地址。不能改变this指针的值,也不能取this指针的地址。
4:访问器和修改器
  将数据成员限定为private,并提供public成员函数来对其进行访问,这种成员函数被称为访问器(accessor)和修改器(mutator)。常以一对getX()和setX() 函数的形式出现。
5:友元(friend)
  C++引入了friend关键字,如果想让非成员函数访问一个类中的私有数据,应该在类中将这个函数声明为friend。
  friend关系不可传递。应该尽量避免使用友元。
三:构造函数和析构函数
1:构造函数初始化列表
类中有些成员不能使用赋值的方式提供初始值
引用成员,const 数据成员,类类型的数据成员
针对这种情况的特殊语法称为构造函数初始化列表
成员1(初始值1)[,成员2(初始值2),…]
初始化列表位于构造函数的参数表之后,函数体之前
构造函数(参数表) : 初始化列表 { 函数体 }
2:委托构造函数
  委托构造函数使用所属类的其他构造函数执行自己的初始化过程,把部分或全部职责委托给了其他构造函数
语法形式:
ClassName(参数表):ClassName(参数表){函数体}
3:析构函数(destructor)
  析构函数负责在对象生存期结束时返回相关资源和自动释放资源。当对象离开作用域时,或者用delete 释放在堆上创建的对象时,析构函数都会被自动调用。析构函数的名字是类名字前加波浪线“~”。析构函数没有返回类型,也没有任何参数。析构函数不能重载,只能为一个类定义唯一一个析构函数。
四:const 成员
1:const 可以限定类中的数据成员,描述对象中的常量。在数据成员声明前加const 关键字就将其限定为常量。const 数据成员在构造函数的初始化列表中初始化。创建对象时初始化其中的const 数据成员,之后const 成员的值在对象的整个生存期中都不会改变。
将一个成员函数声明为const,表明这个成员函数不会修改对象的数据成员,能保证对象的常量性
2:声明const成员函数的语法形式
返回类型 成员函数名(参数表) const;
定义const成员函数的语法形式
返回类型 成员函数名(参数表) const { 函数体 }
注意const成员函数声明和定义的语法
对于在类外定义的const成员函数,必须在它的定义和声明中同时指定关键字const
3:只有声明为const 的成员函数才可以被const 对象调用
const 对象不能调用非const 成员函数
非const 对象可以调用const 成员函数
const 成员函数中不能修改类的数据成员
const 成员函数中不能调用其他非const 成员函数
五:static 成员
1:static数据成员的初始化
  static数据成员属于类,不属于某个特定对象,因而不能在构造函数中初始化。static数据成员在类定义之外初始化,使用类名字限定。
int Object::count = 0;
  static成员只能定义一次。定义一般不放在头文件中,而是放在包含函数定义的源文件中。
static成员访问运算符“.”或“->”数据成员可以是任何类型,甚至是所属类的类型。
2:成员函数的指针
定义语法
  普通的函数指针不能指向成员函数,即使参数表和返回类型相同。因为成员函数还有一项信息,即所属的类。定义指向成员函数的指针时也要指明成员函数的类类型。
基本语法
  返回类型 (类名::*指向成员函数的指针)(参数表);

标签:初始化,const,函数,总结报告,对象,成员,C++,学习,构造函数
来源: https://blog.csdn.net/a765528534/article/details/89286883

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有