第一篇:实验(上机)类的属性和构造函数
实验(上机)三类的成员
实验(上机)目的1、巩固类的创建
2、会定义类的成员:字段及方法
3、会调用类的方法实现对象的操作
实验(上机)课时
4学时
实验(上机)环境
Visual Studio 2010
预备知识
1、面向对象方法。
2、类的定义。
实验(上机)内容
1、定义轿车类,添加属性牌号、颜色、重量、出厂日期;输出该车的颜色、重量和出厂日期的方法,重载构造函数,初始化有牌号和出厂日期的车辆。在窗体中创建一个轿车对象,调试程序。
2、创建一个班级类,包含辅导员、班级名称、所属系部、人数属性,其中人数不能超过60人;输出班级的名称和人数的方法;重载构造函数,创建带名称和辅导员的班级及默认人数为50人。在窗体中实例化对象”_0900103班”和“_0900141班”,并输出。
3、创建时间Shijian类,它包含3个整型属性:Hour、Minute、Second,它们用于表示采取统一时间格式(24小时时钟格式)的一个时间。并定义一个不含参数的ToUniversalString方法,该方法采用统一时间格式返回一个字符串,它包括6个数位--2个表示小时,2个表示分钟,2个表示秒。创建Shijian类的2个实例,编译和调试Shijian类。
要求:采用默认和重载的构造函数两种方式进行实例化类。
4、完成学生类的建立(提示:建立三个属性分别是xuehao,name,birthday;添加一个方法输出学生的相关信息,其输出格式为:
“姓名:张三 学号:00000000 生日:1989-12-12”。)
要求:采用默认和重载的构造函数两种方式进行实例化类。
实验(上机)步骤
按上课代码演示步骤完成上机内容
考核内容
1、熟练使用开发环境;
2、代码完整无误;
3、代码注释量达100%。
第二篇:构造函数
构造函数
1.设
f(x),g(x)分别为定义在R上的奇函数和偶函数,当x0时,f(x)g(x)f(x)g(x)0,且g(3)0,则不等式f(x)g(x)0的解集为______.2.设f(x)是定义在R上的奇函数,且f(2)0,当x0时,有x
f(x)f(x)0
恒成立,则不等式x2f(x)0的解集为__________.3.已知函数f(x)是定义在R上的奇函数,且当x(,0)时,有x<0成立,若a30.3
b
f(x)+f(x)1
3f(3
0.3),blog3
f(log
3),c(log
9)f(log
9),则a、、c的大小关系为__________.f(x),则当a0
4.已知可导函数f(x)满足f(x)系为__________.时,f(a)与ea
f(0)的大小关
5.若函数f(x)对任意的xR都有f(x)
A.3f(ln2)2f(ln3)
f(x)
成立,则__________.B.3f(ln2)2f(ln3)
C.3f(ln2)2f(ln3)D.3f(ln2)与2f(ln3)的大小关系不确定
6.设f(x)是R上的奇函数,且f(1)0,当x0时,(x2
1)f(x)2xf(x)0,则不等式f(x)0的解集为__________.7.已知函数f(x)是定义在(0,)的非负可导函数,且满足x对任意正数a、b,若a
f(x)+f(x)0,B.af(b)bf(a)C.af(a)f(b)
D.bf(b)f(a),8.已知f(x)与g(x)都是定义在R上的函数,g(x)0,f(x)g(x)
f(x)ag(x),x
f(x)g(x)0
f(1)g(1)
f(1)g(1)
.在有穷数列
f(n)
(n1,2,,10)中,前kg(n)
项和
为
1516,则k=__________.
第三篇:构造函数法
函数与方程数学思想方法是新课标要求的一种重要的数学思想方法,构造函数法便是其中的一种。
高等数学中两个重要极限
1.limsinx1 x0x
11x2.lim(1)e(变形lim(1x)xe)x0xx
由以上两个极限不难得出,当x0时
1.sinxx,2.ln(1x)x(当nN时,(1)ne(1)n1).
下面用构造函数法给出两个结论的证明.
(1)构造函数f(x)xsinx,则f(x)1cosx0,所以函数f(x)在(0,)上单调递增,f(x)f(0)0.所以xsinx0,即sinxx.
(2)构造函数f(x)xln(1x),则f(x)11n1n1x0.所以函数f(x)在1x1x
(0,)上单调递增,f(x)f(0)0,所以xln(1x),即ln(1x)x. 1要证1n事实上:设1n111e,两边取对数,即证ln1, nn111t,则n(t1), nt1
1因此得不等式lnt1(t1)t
1构造函数g(t)lnt1(t1),下面证明g(t)在(1,)上恒大于0. t
11g(t)20, tt
∴g(t)在(1,)上单调递增,g(t)g(1)0, 即lnt1, 1
t
111∴ ln1,∴1nnn1n1e,以上两个重要结论在高考中解答与导数有关的命题有着广泛的应用.
第四篇:二、类的设计,构造函数和析构函数
类是编程人员表达自定义数据类型的C++机制。它和C语言中的结构类似,C++类支持数据抽象和面向对象的程序设计,从某种意义上说,也就是数据类型的设计和实现。
一、类的设计
1.类的声明
class 类名
{
private://私有
...public://公有
...};
2.类的成员
一般在C++类中,所有定义的变量和函数都是类的成员。如果是变量,我们就叫它数据成员如果是函数,我们就叫它成员函数。
3.类成员的可见性
private和public访问控制符决定了成员的可见性。由一个访问控制符设定的可访问状态将一直持续到下一个访问控制符出现,或者类声明的结束。私有成员仅能被同一个类中的成员函数访问,公有成员既可以被同一类中的成员函数访问,也可以被其他已经实例化的类中函数访问。当然,这也有例外的情况,这是以后要讨论的友元函数。类中默认的数据类型是private,结构中的默认类型是public。一般情况下,变量都作为私有成员出现,函数都作为公有成员出现。
类中还有一种访问控制符protected,叫保护成员,以后再说明。
4.初始化
在声明一个类的对象时,可以用圆括号()包含一个初始化表。
看下面一个例子:
#include “iostream.h”
class Box
{
private:
int height,width,depth;//3个私有数据成员
public:
Box(int,int,int);
~Box();
int volume();//成员函数
};
Box::Box(int ht,int wd,int dp)
{
height=ht;
width=wd;
depth=dp;
}
Box::~Box()
{
//nothing
}
int Box::volume()
{
return height*width*depth;
}
int main()
{
Box thisbox(3,4,5);//声明一个类对象并初始化
cout< return 0; } 当一个类中没有private成员和protected成员时,也没有虚函数,并且不是从其他类中派生出来的,可以用{}来初始化。(以后再讲解) 5.内联函数 内联函数和普通函数的区别是:内联函数是在编译过程中展开的。通常内联函数必须简短。定义类的内联函数有两种方法:一种和C语言一样,在定义函数时使用关键字inline。如: inline int Box::volume() { return height*width*depth; } 还有一种方法就是直接在类声明的内部定义函数体,而不是仅仅给出一个函数原型。我们把上面的函数简化一下: #include “iostream.h” class Box { private: int height,width,depth; public: Box(int ht,int wd,int dp) { height=ht; width=wd; depth=dp; } ~Box(); int volume() { return height*width*depth; } }; int main() { Box thisbox(3,4,5);//声明一个类对象并初始化 cout< return 0; } 这样,两个函数都默认为内联函数了。 二、构造函数 什么是构造函数?通俗的讲,在类中,函数名和类名相同的函数称为构造函数。上面的Box()函数就是构造函数。C++允许同名函数,也就允许在一个类中有多个构造函数。如果一个都没有,编译器将为该类产生一个默认的构造函数,这个构造函数可能会完成一些工作,也可能什么都不做。 绝对不能指定构造函数的类型,即使是void型都不可以。实际上构造函数默认为void型。 当一个类的对象进入作用域时,系统会为其数据成员分配足够的内存,但是系统不一定将其初始化。和内部数据类型对象一样,外部对象的数据成员总是初始化为0。局部对象不会被初始化。构造函数就是被用来进行初始化工作的。当自动类型的类对象离开其作用域时,所站用的内存将释放回系统。 看上面的例子,构造函数Box()函数接受三个整型擦黑素,并把他们赋值给立方体对象的数据成员。 如果构造函数没有参数,那么声明对象时也不需要括号。 1.使用默认参数的构造函数 当在声明类对象时,如果没有指定参数,则使用默认参数来初始化对象。 #include “iostream.h” class Box { private: int height,width,depth; public: Box(int ht=2,int wd=3,int dp=4) { height=ht; width=wd; depth=dp; } ~Box(); int volume() { return height*width*depth; } }; int main() { Box thisbox(3,4,5);//初始化 Box defaulbox;//使用默认参数 cout< cout< 4return 0; } 2.默认构造函数 没有参数或者参数都是默认值的构造函数称为默认构造函数。如果你不提供构造函数,编译器会自动产生一个公共的默认构造函数,这个构造函数什么都不做。如果至少提供一个构造函数,则编译器就不会产生默认构造函数。 3.重载构造函数 一个类中可以有多个构造函数。这些构造函数必须具有不同的参数表。在一个类中需要接受不同初始化值时,就需要编写多个构造函数,但有时候只需要一个不带初始值的空的Box对象。 #include “iostream.h” class Box { private: int height,width,depth; public: Box(){ //nothing } Box(int ht=2,int wd=3,int dp=4) { height=ht; width=wd; depth=dp; } ~Box(); int volume() { return height*width*depth; } }; int main() { Box thisbox(3,4,5);//初始化 Box otherbox; otherbox=thisbox; cout< return 0; } 这两个构造函数一个没有初始化值,一个有。当没有初始化值时,程序使用默认值,即2,3,4。 但是这样的程序是不好的。它允许使用初始化过的和没有初始化过的Box对象,但它没有考虑当thisbox给otherbox赋值失败后,volume()该返回什么。较好的方法是,没有参数表的构造函数也把默认值赋值给对象。 class Box { int height,width,depth; public: Box() { height=0;width=0;depth=0; } Box(int ht,int wd,int dp) { height=ht;width=wd;depth=dp; } int volume() { return height*width*depth; } }; 这还不是最好的方法,更好的方法是使用默认参数,根本不需要不带参数的构造函数。 class Box { int height,width,depth; public: Box(int ht=0,int wd=0,int dp=0) { height=ht;width=wd;depth=dp; } int volume() { return height*width*depth; } }; 三、析构函数 当一个类的对象离开作用域时,析构函数将被调用(系统自动调用)。析构函数的名字和类名一样,不过要在前面加上 ~。对一个类来说,只能允许一个析构函数,析构函数不能有参数,并且也没有返回值。析构函数的作用是完成一个清理工作,如释放从堆中分配的内存。 我们也可以只给出析构函数的形式,而不给出起具体函数体,其效果是一样的,如上面的例子。但在有些情况下,析构函数又是必需的。如在类中从堆中分配了内存,则必须在析构函数中释放 类的构造函数 析构函数与赋值函数 构造函数 析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。 每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A产生四个缺省的函数,如 A(void);// 缺省的无参数构造函数 A(const A &a);// 缺省的拷贝构造函数 ~A(void);// 缺省的析构函数 A & operate =(const A &a);// 缺省的赋值函数 这不禁让人疑惑,既然能自动生成函数,为什么还要程序员编写? 原因如下: (1)如果使用“缺省的无参数构造函数”和“缺省的析构函数”,等于放弃了自主“初始化”和“清除”的机会,C++发明人Stroustrup的好心好意白费了。 (2)“缺省的拷贝构造函数”和“缺省的赋值函数”均采用“位拷贝”而非“值拷贝”的方式来实现,倘若类中含有指针变量,这两个函数注定将出错。 对于那些没有吃够苦头的C++程序员,如果他说编写构造函数 析构函数与赋值函数很容易,可以不用动脑筋,表明他的认识还比较肤浅,水平有待于提高。 本章以类String的设计与实现为例,深入阐述被很多教科书忽视了的道理。String的结构如下: class String { public: String(const char *str = NULL);// 普通构造函数 String(const String &other);// 拷贝构造函数 ~ String(void);// 析构函数 String & operate =(const String &other);// 赋值函数private: char*m_data;// 用于保存字符串 };第五篇:类的构造函数 析构函数与赋值函数