1.C++中类和C语言中的结构体
两者都是数据类型,类中的成员默认为私有的,而结构体中的成员默认为共有的。类中添加了结构体没有的成员函数。C++之所有说是面向对象的,就是因为引入了类,类的实例化(赋予具体的初值)就是对象。
2.类的书写形式
class Student
{
public:
int name;
int card;
void print();
private:
double score;
};
当成员函数在类外定义时要标明作用域::,即这个成员函数是哪个类的
例:
void Student::print()
{
cout<<"输入名字"<<endl;
}
3.类中很重要的概念继承
继承的好处使代码更简洁
继承范例
class animal
{
public:
int eat;
};
class dog:public animal
{
public:
int size;
};
这样dog类中包含两部分分别是animal::eat和dog::size。
4.构造函数
为了使变量(对象)在声明时就有个初始值。经常与new一起使用(因为构造函数不能直接调用,必须通过new运算符在创建对象时才会自动调用)
构造函数的形式可以有以下几类
Student(double score1)
{
score=score1;}
还可以用符号(:)来初始化
Student(double score1):score(score1){}
最后的花括号一定不能省略
Student(Student & c)
{
score=c.score;
}
里面的参数是c对象的引用。虽然对象不能访问私有成员(成员函数才可以访问私有成员)但是在拷贝构造函数中可以访问另一个同类对象(引用)的私有变量。
5.默认构造函数
当类没有定义构造函数时,默认构造函数将被调用。
class Student
{
};
Student A=new Student;//这个只是给对象分配了内存
Student B=new Student();//不但分配内存,还初始对象的成员变量为0
6.重载运算符
目的:补充库中未能提供的针对特定类的运算符。
有两种形式重载为类的成员函数,或者重载为友元函数,一般情况下,建议一元运算符使用成员函数,二元运算符使用友元函数
class point
{
public:
int x;
point operator +(point &p);
};
point point::operator+(point &p)
{
return (x+p.x);
}