标签:总结 函数 对象 成员 第三周 作用域 声明 构造函数
学习总结
1.类和对象–类的构成
结构体是一种自定义的数据类型,他会把相关联的大数据元素组成一个单独的统一体。例如,声明一个成绩结构体.
类是C++最重要的一个特性,
类声明中的内容包括数据和函数, 分为数据成员和成员函数。按照权限划分,数据成员分为 公有,保护,和私有三种,
class 类名{
public:
公有数据成员
公有成员函数
protected:
保护数据成员;
私有成员函数;
};
关键字的声明有关键字class开头 花括号中是类体,最后以一个分号";"结束
class Score{
public: //在关键字public后面声明,它们是类与外部的接口
,任何外部函数都可以访问公有类型数据和函数。
void setScore(int m,int f); //公有成员函数
void showScore(); //公有成员函数
private : //在关键字private后面声明,只允许本类中的函数
访问,而类外部的任何函数都不能访问如果紧跟在类名称的后面声明私有
成员,则关键字private可以省略。
int mid_exam; //私有数据成员
int fin_exam; //私有数据成员
};
说明:
(1) 类声明中的private和public两个关键字可以按任意顺序出现任意次。但是,如果把所有的私有成员和公有成员归类放在一起,程序将更加清晰。
(2) 除了private和public之外,类中的成员还可以用另一个关键字 protected来说明。
被protected说明的成员称为保护成员,它不能被外部函数使用,但可以通过其他方法使用它。
(3)不能在类声明中给数据成员赋初值。
C++规定,只有在对象定义之后才能给数据成员赋初值
例如
2.对象的定义和使用
需要声明类之后再定义对象
**3.类的作用域和类成员的访问属性 **
所谓类的作用域就是指在类的声明中的一对花括号所形成的作用域。一个类的所
有成员都在该类的作用域内。
在类的作用域内,一个类的任何成员函数成员可以不受限制地访问该类中的
其他成员。
而在类作用域之外,对该类的数据成员和成员函数的访问则要受到一定的限制
,有时甚至是不允许的。
这主要与类成员的访问属性有关。
4.构造函数
构造函数
与使用变量一样,对象时也应该“先定义,后使用”。在定义对象时,对数据成员赋初值,称为对象的初始化。
struct Savings
{
unsigned accountNumber;
float balance;
};
Savings A={1, 2000.0};
Savings B(2,3000.0);
构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态。
在对象创建时由系统自动调用。
如果程序中未声明,则系统自动产生出一个缺省形式的构造函数
允许为内联函数、重载函数、带缺省形参值的函数
如果在类中用户没有定义构造函数,系统会自动提供一个函数体为空的默认构造函数。
但是,只要类中定义了一个构造函数(不一定是无参构造函数),系统将不再给它提供默认构造函数。
主要的用途:
构造函数是一种特殊的成员函数,它主要用于:
(1) 为对象分配空间
(2) 为对象的数据成员进行初始化
(3) 其他指定的任务
说明:
(1) 构造函数的名字必须与类名相同,否则编译程序将把它当作一般的成员函数来处理。
(2) 构造函数没有返回值,在声明和定义构造函数时,是不能说明它的类型的,甚至说明为void类型也不行。
(4) 构造函数一般声明为公有成员,但它不需要也不能像其他成员函数那样被显式地调用,它是在定义对象的同时被自动调用的。
例如,下面的用法是错误的:
score1.Score(1.1,2.2);
(5) 如果没有在类中定义构造函数,则编译系统自动地生成一个默认的构造函数。
例如,编译系统为类Score生成下述形式的构造函数:
Score∷Score( )
{ }
这个默认的构造函数,不带任何参数,只能为对象开辟一个存储空间,而不能给对象中的数据成员赋初值
标签:总结,函数,对象,成员,第三周,作用域,声明,构造函数 来源: https://blog.csdn.net/qq_51909272/article/details/115033163
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。