1.结构体定义及初始化
例如:
struct Date
{ int month;
int day;
int year;
}
Date due_data = {12,23,1986};
初始值多于struct成员会出错。相反,如果初始值少于struct成员,就依次使用你提供的值来初始化数据成员。没有获得初始值的每个数据成员都初始化成与变量类型匹配的一个零值。
2.定义类
成员函数采取其他任何函数一样的方式来定义,只是在函数头中给出Class_name和作用域解析操作符::。
取值函数:用于获得一个类的私有成员变量值的成员函数称为取值函数。取值函数不需要返回每个成员变量的字面值,但必须返回与那些值等价的某种东西。虽然c++语言规范没有要求,但通常都在取值函数的名称中包括单词get。
赋值函数:用于更改一个类的私有成员变量值的成员函数称为赋值函数。虽然c++语言规范没有要求,但通常都在赋值函数的名称中包括单词set。
最好为每个类定义都包括相应的取值函数和赋值函数,以便存取一个对象中的数据。
3.将赋值操作符作用于对象
Dayofyear due_date, tomorrow;
due_date = tomorrow;
Dayofyear 是一个类,只要tomorrow变量被赋值,上述赋值就是合法的。
4.构造函数
构造函数是一个成员函数,会在声明那个类的一个对象时被自动调用。构造函数用于初始化成员变量的值,并进行其他可能需要的任何初始化操作。可以像定义其他任何成员那样来定义一个构造函数,只是要注意一下两点:
1、构造函数必须与类同名。
2、构造函数定义不能返回一个值。此外,在函数声明的起始处或者函数头中,不允许指定返回类型(就连void都不可以)。
总是包括一个默认的构造函数:可以在无实参情况下调用的构造函数称为默认构造函数,因为它是在默认情况下调用的。在这种情况下,你声明一个对象而不提供任何实参。由于有的时候希望在不提供任何构造函数实参的情况下声明一个对象,所以始终应该包括一个默认构造函数。例如:
class SampleClass
{ public:
SampleClass(int para1,int para2);
SampleClass();
void do_stuff();
private:
int data1;
double data2;
};
无参数构造函数:
声明一个对象时,如果希望调用无参构造函数,就不能包括任何园括号。例如,为了声明一个对象,并向构造函数传递两个参数,可以像下面这样写:
BankAccount account1(100,2.3);
但是,要使用无参数构造函数,必须像下面这样声明对象:
BankAccount account1;
不要像下面这样声明对象:
BankAccount account1();//不正确的声明。
问题在于,上述语法实际会声明一个名为account1的函数,它不接受任何参数,并返回一个BankAccount对象。
5.继承